【W7】活性予測のための機械学習モデル_18_Step4_Scorer_and_ROC_Curve
【W7の目的】
W7を勉強し始めたのは2022年元旦でしたが既に春過ぎて夏来にけらし。
上図のW7のメタノード内を3ヶ月以上かけて体験してきて、
ようやく機械学習アルゴリズムについての最終パートに来ています。
前回までで各種アルゴリズムでの機械学習部分を体験したので、その性能を比較することにします。
W7のKNIME workflow (WF)ではこの部分もStep3とされているのですが、工程としては分かれているのでStep4と呼んだ方が良いと思います。
アルゴリズムごとに結果を見たいときはここを使いますが、上図のMetanodeの外にある下図のコンポーネントを利用したアルゴリズム間比較用のダッシュボードも紹介します。
【アルゴリズムごとの評価画面をちょっと編集】
各アルゴリズムの予測結果を解析し、予測精度を可視化するのが下図のコンポーネントです。
ただし、実はダッシュボードの設定を修正しないとまとめて見られません。
中に含まれているそれぞれのノード別なら閲覧は出来ます。
理由は画面表示の設定が正しくなされていなかったからのようです。
上記のコンポーネントを開いた状態で下図のアイコンをクリックすると画面表示のレイアウトを編集できます。
そこで、今回デモデータでは上記のようになっていたコンポーネントの画面表示設定を下図のように変えてみました。
clear layoutボタンで下図のように初期化し、
Viewsからドラッグアンドドロップで編集しました。
結果はコンポーネントを実行して閲覧できます。
【混同行列と正解率】
分類モデルの評価については下記記事を紹介しておきます
とのことで学ぶべきことはまた多くありそうなのですが、記事の引用に留めます。
上記の記事より混同行列の図を示します。
そして、指標は数あれど今回は正解率のみ使って話します。
先ほどコンポーネントで視覚化したランダムフォレストでの結果を計算してみると、4511化合物を予測し、正解したすべての化合物すなわちTNとTPの和が1392+2325=3717なので正解率は82.40%と算出されています。
まあ別に関数電卓の図はいらんやろとお思いでしょうが、自分でも検算すると何となくわかった感が出たので。
正解率を機械学習モデルの性能評価に使うのには注意点があるそうです。
今回の真偽の分布は不均衡というほど偏ってはいないことを確認してあるので良しとしました。
【ROC Curve】
AUC(Area Under the Curve)は
上図を見ていただければ、よりオレンジの線に近づくとAUCが大きくなる、すなわち1に近づくことが直観的に理解できると思います。
AUC(Area Under the Curve)は
上図を見ていただければ、よりオレンジの線に近づくとAUCが大きくなる、すなわち1に近づくことが直観的に理解できると思います。
先ほどのランダムフォレストの結果を見てみます。
ちなみに緑で丸を付けた十字矢印のアイコンで各ウィンドウを最大化したりできます。
以上で大まかに見方を紹介したところで、アルゴリズム間の比較用画面に移ります。
【比較用コンポーネント】
数か月ぶりにW7のメタノードの外へ出てきました。
まずはScore Viewと書かれたコンポーネントを閲覧しましょう。
SVMの混同行列の特異さが見て取れると思います。
もう一つのコンポーネントでROC曲線も並べてみましょう。
順番をそろえるため並べ替えますので混乱しないでくださいね。
ANNより
SVMは
RFは
一見すると大きく違って見えませんね。ところがSVMだけ描画条件が異なっています。
そこで条件をそろえて書き直してみました。
ROC曲線はアルゴリズム間で一見して違いが分かりにくい印象でした。
ただし私が何にもわかってないだけかもしれないです。
しかも本来は下記の記事の通りAUCの差の検定を行うことになるようで、私がなにかコメントできるレベルの話ではないようでしたのでここまでに。
おまけ:
【SVMの予測精度改善に向けて】
上記の結果でW7のWFについて全ての体験を終えはしたのですが、SVMについてはこのままでいいのかなぁと思いました。このようにただ結果をうのみにするのではなく自分で何かしてみたいと思わせてくれると言う意味でなかなかにひねった教材になっていると思います。
そこで次回はWFの改作をして、SVMのハイパーパラメータチューニングに挑もうと思います。
幸い先人たちの貴重な情報提供があるので、まねっこしてみます。
記事を読んでいただきありがとうございます。 先人の智慧をお借りしつつ、みなさんに役立つ情報が届けられたらと願っています。 もしサポートいただけるなら、そのお金はKNIMEの無料勉強会の開催資金に充てようと思います。