いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【KNIME】Random Forestで分類問題を解いてみたい

機械学習教師あり学習というものをKNIMEでやってみたく、多くの場合で用いられるRandom Forestという手法を試してみた。

・データのサンプルは、教師あり学習の分類問題で一般的なIris分類問題(アヤメの分類問題)を用いた。

・一連の流れをフローで組むと、以下のようになった。

f:id:choron81:20211201112321p:plain

・流れとしては、
①データセットの読み込み
②学習データと検証データに分割
③学習データでモデルを構築
④検証データをモデルにあてはめ
⑤検証データの正解と、検証データの予測分類を比較して、モデルの良し悪しを評価
という感じ。

・Irisデータセットの取得は、以前の記事に記載のサイトからダウンロードした。

・分割に使ったPartitioningノードの設定画面では、データセットのうちのどの程度を学習(モデル構築)に用いるかを指定する(下図)。今回だと、70%が上の出力ぽーーと、残りが下の出力ポートに分割され、上の出力ポートのデータがモデル構築に用いられた。

f:id:choron81:20211201112745p:plain

・Random Forest Learnerノードの設定画面では、いろいろなハイパーパラメータを弄ることができる(下図)。

f:id:choron81:20211201113452p:plain

・詳しいことはウィンドウ右下の?マークに簡単な解説が載っている。不十分ならgoogle大先生に聞く。

・Predictorノードでは、先のモデルに情報をあてはめて、分類を実施する。各分類の自信度も算出される(下図)。

f:id:choron81:20211201143802p:plain

・scorerノードの上の出力ポートでは、confusion matrixを見ることができる(下図)。行名が正解、列名が予測なので、予測ではversicolorの一部をvirginicaに分類してしまっていることが分かる。

f:id:choron81:20211201114038p:plain

・真ん中の出力ポートは、各クラスにおける判定状況を示した表(下図)。

f:id:choron81:20211201114616p:plain

・sensitivityとrecallって同じものだと思っていたのだが、どう違うんだろうか。。

・この辺は別枠で勉強したい。

・流石にscikit-learnの方が細かくチューニングできるし、最終的なモデル性能を高めることができると思うが、手軽さではこちらの方が優れる。お試し目的や学習目的であれば十分だと感じた。

 

終わり。