![見出し画像](https://assets.st-note.com/production/uploads/images/82341146/rectangle_large_type_2_d68084d82ceff040d638b6c968aa04f4.png?width=800)
【JKI】024_Modeling_Churn_Predictions_Part_2_01_AutoML
【JKI_024】課題を確認
Just KNIME It! (JKI)
https://www.knime.com/just-knime-it
今回の挑戦はこちら
![](https://assets.st-note.com/img/1657369748575-QxtADDv0ks.png?width=800)
ちなみに先週の挑戦はこちら。一見すると間違い探しのようです。
![](https://assets.st-note.com/img/1657369783956-AENaKB7EKy.png?width=800)
ところが急激に内容は高度化しています。
問題文をGoogle翻訳し少し加筆して以下に。
課題24:チャーン予測のモデリング-パート2
レベル:簡単~中程度
説明:先週のチャレンジと同様に、通信会社は、アカウントの属性に基づいて、どの顧客が解約するか(つまり、契約をキャンセルするか)を予測することを求めています。同僚の1人は、トレーニングデータをまったく変更せずに、与えられたすべての属性をそのまま使用することで、テストデータの精度を95%以上達成できたと述べています。この場合も、予測されるターゲットクラスはチャーンです(値0はチャーンしない顧客に対応し、1はチャーンする顧客に対応します)。
テストデータセットでこの精度を得るには、トレーニングデータセットでどのモデルをトレーニングする必要がありますか?この決定は自動化できますか?
注1: この課題に対するシンプルで自動化されたソリューションは、5つのノードで構成されています。
注2:この課題では、データセット内の属性またはクラスの統計的分布を変更せず、使用可能なすべての属性を使用します。
注3:問題を理解するためにさらに助けが必要ですか?このブログ投稿をチェックしてください。
【2つのデータセット】(トレーニングとテスト)
先週のPart1と全く同じです。むしろ変えてはいけないルール。
データセット入手先:
先週と同じく処理します。
![](https://assets.st-note.com/img/1657370023430-yYkF5Tgpuh.png)
【AutoMLコンポーネント利用例】
テストデータセットでこの精度を得るには、トレーニングデータセットでどのモデルをトレーニングする必要がありますか?この決定は自動化できますか?
この課題に対するシンプルで自動化されたソリューションは、5つのノードで
ってもうコンポーネントをいかに見つけてくるかの一択ですよね。もはやコンポーネントはノードの一種という扱いになっています。
のVerified Component群がその代表格だと思います。そして、その中でも最初に紹介されているAutoMLコンポーネント。
![](https://assets.st-note.com/img/1657370143545-ZpqPu6kyvF.png?width=800)
使い方もKNIME Hubにいけばいろいろと見つかります。
私はこちらのKNIME workflow(WF)をダウンロードしてみました。
すごいなぁKNIMEコミュニティ。
しかしWFを開こうとしたら下記の通りちょっと大変なことに。
![](https://assets.st-note.com/img/1657370212604-1RnkmOISsT.png?width=800)
思い出したのはこの曲
それはさておき、詳細は略しますがYesを押して多数のextensionsを入れました。
このWFを見てAutoMLなど機械学習関連のコンポーネントの組み合わせでここまでできるのかと感心しました。しかしちょっとやっていることが高度過ぎたので、今回の課題にはレベル的に合いません。そこでもう一つもっとシンプルな下記WFを見てみました。
![](https://assets.st-note.com/img/1657370308851-BRZQY0Rbc7.png?width=800)
残念ながらこのWFはCASE Switch Startが私の使っているver.4.4.1では使えないのでSelect Example Datasetコンポーネント2つが動かせなかったです。
https://nodepit.com/node/org.knime.base.node.switches.caseswitch.any.CaseStartAnyNodeFactory
![](https://assets.st-note.com/img/1657370351321-1XAY4R6NVq.png?width=800)
【作者の皆さまごめんなさい】
悔しいです!!
よーし、これからお前たちを殴る!!
ということで、一部を抜き出して使ってみました。怒られるかもしれないとは思いつつ、4.4系ユーザーの皆さんにもとKNIME Hubに上げています。
![](https://assets.st-note.com/img/1657370454634-rgRoUk04jz.png?width=800)
![](https://assets.st-note.com/img/1657370460831-A9vkesYZuz.png?width=800)
IrisデータセットだとGradient Boosted Treesが最適解だったそうです。
…スクールウォーズやWFの作者の皆さんごめんなさい。
おかげさまでAutoMLで判別モデルを作る方法は知ることができたので、次回は提出したWFの解説へ進めます。
KNIME Hubに解答は上げています。
![](https://assets.st-note.com/img/1657446013570-J8HvNUdZla.png?width=800)
おまけ:
【JKI_023 感想戦】
今回の公式解答はこちら。
WFの構成は同一ですので正解だったですね。そこまではまあそうでしょう。
でも実は予測性能にかなりの差が。
公式解答:
![](https://assets.st-note.com/img/1657370690241-XOuCQEudQg.png?width=800)
私の解答:
![](https://assets.st-note.com/img/1657370711967-dIW2yP9UAY.png?width=800)
もちろん理由は簡単です。
公式解答:
![](https://assets.st-note.com/img/1657370736230-ZUOpdIX7nS.png?width=800)
私の解答:
![](https://assets.st-note.com/img/1657370761611-4SBj0MNlrS.png?width=800)
自分の未熟さが悔しいです。
「素人で悪いか。」って言える力が欲しい…。
記事を読んでいただきありがとうございます。 先人の智慧をお借りしつつ、みなさんに役立つ情報が届けられたらと願っています。 もしサポートいただけるなら、そのお金はKNIMEの無料勉強会の開催資金に充てようと思います。