【KNIME】Random Forestで分類問題を解いてみたい
・機械学習の教師あり学習というものをKNIMEでやってみたく、多くの場合で用いられるRandom Forestという手法を試してみた。
・データのサンプルは、教師あり学習の分類問題で一般的なIris分類問題(アヤメの分類問題)を用いた。
・一連の流れをフローで組むと、以下のようになった。
・流れとしては、
①データセットの読み込み
②学習データと検証データに分割
③学習データでモデルを構築
④検証データをモデルにあてはめ
⑤検証データの正解と、検証データの予測分類を比較して、モデルの良し悪しを評価
という感じ。
・Irisデータセットの取得は、以前の記事に記載のサイトからダウンロードした。
・分割に使ったPartitioningノードの設定画面では、データセットのうちのどの程度を学習(モデル構築)に用いるかを指定する(下図)。今回だと、70%が上の出力ぽーーと、残りが下の出力ポートに分割され、上の出力ポートのデータがモデル構築に用いられた。
・Random Forest Learnerノードの設定画面では、いろいろなハイパーパラメータを弄ることができる(下図)。
・詳しいことはウィンドウ右下の?マークに簡単な解説が載っている。不十分ならgoogle大先生に聞く。
・Predictorノードでは、先のモデルに情報をあてはめて、分類を実施する。各分類の自信度も算出される(下図)。
・scorerノードの上の出力ポートでは、confusion matrixを見ることができる(下図)。行名が正解、列名が予測なので、予測ではversicolorの一部をvirginicaに分類してしまっていることが分かる。
・真ん中の出力ポートは、各クラスにおける判定状況を示した表(下図)。
・sensitivityとrecallって同じものだと思っていたのだが、どう違うんだろうか。。
・この辺は別枠で勉強したい。
・流石にscikit-learnの方が細かくチューニングできるし、最終的なモデル性能を高めることができると思うが、手軽さではこちらの方が優れる。お試し目的や学習目的であれば十分だと感じた。
終わり。