見出し画像

【W7.5.2】TeachOpenCADD_plus_AutoML

【TOC_W7_plus_AutoML】

上記の記事でも取り上げた通り、TeachOpenCADD-KNIMEのW7はケモインフォマティクスにおける機械学習の教材として優れています。
そして実際にW7のKNIME workflow (WF)を活用することで、機械学習の体験をいろいろとしてきました。

一方で、2022年1月から始まったJust KNIME It!でも半年が過ぎてとうとう機械学習自動化まで課題となりました。AutoMLの高機能さやその性能を体験したところです。

ノーコードかつ無料でここまでできるのかと驚かれた方は私以外にもいるのではないでしょうか?

そしてAutoMLコンポーネントを知ったらとりあえず自分の過去の機械学習WFに使ってみたくなるのが人情というもの。
今回はTeachOpenCADD+AutoMLの体験をしてみます。


【TeachOpenCADDのW7より】

が既にあるので、機械学習以外の部分について新たに説明は不要でしょう。
デモデータ:

TeachOpenCADDのデータ前処理:

Step3すなわち機械学習実行の部分はAutoMLを使って下図の通りに組みました。
トレーニングデータとテストデータを分けたいなぁとも思ってPartitioningノードも持っては来たが、やはりTeachOpenCADDに倣っています。

Scorerなどの評価パートもほぼ元のままですので割愛。
今回のAutoMLの設定は以下に抜粋しておきます。

【AutoMLを使ってみた】

上記のWF実行結果を見てみます。

でました精度90%越え。あっさりと最高値更新されてしまいました。

比較: SVMでの検討例は精度85%弱

Flow Variablesに実行結果の概要が出力されています。

XGBoost Trees
Gradient Boosted Trees
Decision Tree, Logistic Regression
Generalized Linear Model (H2O)
Neural Network
Random Forest
Naive Bayes
の7種を並行して検討した結果、最高精度を示したのは

XGBoost Trees、eta = 0.2, Max_depth = 5が最適解だったそうです。

【調べてみようAutoMLコンポーネント】

さすがに中身を全く見ないで終わりは味気ないので、AutoMLコンポーネントの勉強をしてみました。夏の自由研究の気分。

ひとまずはディスクリプションを読みます。さすがにInfocomの方々もコンポーネントまでは日本語化されていなかったので以下はDeepL翻訳し一部加筆して引用しています。

このコンポーネントは、バイナリおよびマルチクラス分類のための教師あり機械学習モデルを自動的に学習します。
このコンポーネントは、
・データ準備
・クロスバリデーションによるパラメータ最適化
・スコアリング
・評価と選択
を行うことで、MLサイクル全体を自動化することができます。

ステップバイステップガイド
- KNIME HubからKNIME Analytics PlatformにコンポーネントをDrag&Dropします。
- 特徴量とターゲットカラムのデータテーブルと接続します。最初にサブサンプルの使用を検討します。
- 重要! すべてのアップストリームノードを実行します。
- コンポーネントをダブルクリックし、ダイアログを開きます。
- 「OK」で設定を保存し、Componentを実行します。
- モデルの学習、チューニング、検証などが行われ、最適なモデルが選択され、エクスポートされるのを待ちます。
- Workflow Executor/Writer ノードを Component の出力に接続し、モデルを再利用します。

ここまでは上記ですでに体験済。

オプションとされているようですが

Component : "Component" > "Open "を右クリックし、カスタマイズ可能な実装を確認することができます。

ということで、中身も少しだけ見てみます。

AutoML DataPrepまでのデータ準備も重要技術ではあろうが割愛し、先述のXGBoost Treesモデルについてクロスバリデーションによるパラメータ最適化のところを見てみます。

AutoML Learnerコンポーネントの中の

10個の機械学習モデルコンポーネントの中にXGBoost Meta Learnerがあり、

その中にはパラメータ最適化をした後にその条件下でモデルを作成して予測を行う仕組みが実装されています。

そしてパラメータ最適化はクロスバリデーションで行われています。何分割するかはAutoMLコンポーネントの設定で変更可能です。

ちなみにXGBoost Treesモデルについてのパラメータ最適化は下記の設定です。

もっと広い範囲でスクリーニングしたりするようカスタマイズすることもできるのであろうと考えます。
ここまで見ると、最初はブラックボックスのように見えたAutoMLが実は非常に詳細に情報公開されていることが分かります。惜しみない技術共有に感謝です。

以上でAutoMLの中を見るのは終わりにします。
評価部分なども説明は省くのですが、その結果を可視化する機能までAutoMLには搭載されています。
最後に、

右クリックでComponentを選択:"Open Interactive View: AutoML "をクリックすると、すべての学習済みモデルが表示されます。

こちらも一見の価値はあると思います。

Customメニューもあって、スライダーでしきい値を変えてどうなるかを観察することすらできます。

AutoMLコンポーネントの、確かに素晴らしい高機能でした。今回はここまでといたします。


おまけ:

【note1周年】

2021年7月11日にKNIMEの良さを伝えたいとnoteを書き始め、1年が経ちました。

今日の記事が135件目となります。
Noteにはダッシュボード機能というのがありまして、2022年7月11日現在下記のようになっています。

9000を超える閲覧数や400を超える「スキ」にただひたすらに感謝です。
皆さま本当にありがとうございます。とても力づけられました。
そこで、お暇を頂いていたTeachOpenCADD-KNIME紹介もこれを機に再開しようと思います。
これからもどうぞよろしくお願いします。

あ、初コメント、どなたかお待ちしてます。

記事を読んでいただきありがとうございます。 先人の智慧をお借りしつつ、みなさんに役立つ情報が届けられたらと願っています。 もしサポートいただけるなら、そのお金はKNIMEの無料勉強会の開催資金に充てようと思います。