【JKI】025_Modeling_Churn_Predictions_Part_3_SMOTE
【JKI_025】課題を確認
Just KNIME It! (JKI)
今回の挑戦はこちら
問題文をGoogle翻訳し少し加筆して以下に。
難問だとコメントされている通り、KNIMEのチャレンジというよりは機械学習の基礎学習になっています。
Just KNIME It!というよりJust Execute Machine Learning It!
語呂が悪いか。
【前回の予測モデルの性能評価】
今回の課題の比較対象は、前回作った上記の分類モデルとなります。
その予測結果を見てみます。
とのコメントの通りかなと思います。実際に解約したのが19+78=97名ですが、19名は予測では解約しないと誤ってクラス分けされています。
つまりChurn=1のRecall(再現率)でいうと
78÷97=0.804
実際に解約してしまう方の2割を予測できていない(擬陰性)です。通信会社としては解約しそうな顧客を事前に予測して、契約を継続してもらえるよう働きかけたりしたいでしょうから、Churn=1のクラスについての再現率を高めたいのだろうということで今回の課題設定となったかと思います。
ちなみにクラス分け予測の評価指標の色々は下記の記事で勉強しました。
【不均衡データへの対策】
でもData Explorerノードでデータ分布を見ましたが、問題文中に上記で紹介されているブログ記事でもまさに不均衡データをどう扱うかに注目しています。DeepL翻訳を一部編集して引用します。
ここで、このブログ記事で紹介されているKNIME workflow (WF)を見てみましょう。
(WF抜粋)
この記事の扱うデータもおそらく今回の課題と同一のデータセット由来ですので、参考になることは間違いありません。私たちに与えられたデータも確かに不均衡です。ですから、今回はSMOTEを利用してみることにしました。
【SMOTEの実装】
トレーニングデータだけを増やすので、先週分の公式解答WFを転用し、下図のようにSMOTEノードを加えました。
SMOTEノードの日本語化されたディスクリプションを引用します。
ちょっとわかりにくかった方のためには下記の記事を紹介します。
このSMOTEノードですが、デフォルト設定だと下記のように多数派クラスも人工的に行を追加する仕様になっている点は注意です。
再現性が出るようにseedは”111”に固定で設定してみました。AutoMLでの予測まで実行した結果は下記の通り。
精度は95.052%から95.202%
Cohen’s Kappa係数は0.797から0.804
とどちらも微増していますが、
Churn=1のデータ群は
FN (擬陰性) : TP (真陽性、正解)= 19 : 78から18 : 79
とあまりよくなったように思えないです。
【SMOTE実施条件】
SMOTEノードの設定は下図の通りとしました。実は何種類か試して一番よかったものを記録しています。
設定:
また、AutoMLコンポーネントは下図の設定に変えました。
最適化の指標を精度ではなくCohen’s Kappa係数にしてみました。Recallでもいいかなとは思うのですが、Churn=0のクラスの予測性能もあまり犠牲にしてはいけないのではと考えてのことです。
結果:
AutoMLで最適解とされた機械学習モデルがGradient Boosted TreesではなくXGBoost Treesに変わりました。
モデル全体の評価指標である精度、Cohen’s Kappa係数だけ見ると逆に微減してます。
しかし、Churn=1のデータ群に関していえば
FN (擬陰性) : TP (真陽性、正解)= 19 : 78から16 : 81
と擬陰性が減ったことを評価しました。
また、
は私の知識ではできないので断念しました。
さらに高みを目指すのは玄人の皆さまにお任せいたします。
例えばオーバーサンプリング手法はSMOTEだけではないですが、Pythonなど無しではこの課題、これ以上は厳しい。
KNIME Hubに解答は上げています。
おまけ:
【JKI_024 感想戦】
今回の公式解答はこちら。
WFの構成は同一ですので正解だったようです。既に上記で紹介しています。週を追うごとに課題の難易度が上がっており、来週もさらに追加でチャレンジがあるそうです。
の冒頭でAline Bessaさんが
と宣言されているので確実です。難易度hardの上が来るのか?
正直もうギリギリいっぱいなんです…とうとう解答連続投稿記録が止まるか!?
記事を読んでいただきありがとうございます。 先人の智慧をお借りしつつ、みなさんに役立つ情報が届けられたらと願っています。 もしサポートいただけるなら、そのお金はKNIMEの無料勉強会の開催資金に充てようと思います。