機械学習

scikit-learnを利用してモデル評価後に評価指標を出力してみた

データ分析や機械学習のためのライブラリの一つであるscikit-learnには、評価モデルを作成後、正答率・適合率・再現率・F値等の評価指標を出力する機能がある。

今回は、決定木分析やロジスティクス回帰分析のモデルの評価指標を出力してみたので、そのサンプルプログラムを共有する。

なお、決定木分析やロジスティクス回帰分析を利用したモデルについては、以下の記事も参照のこと。

DecisionTreeClassifierクラスを用いて2値分類をしてみた以下の記事で、ロジスティック回帰分析によって、アヤメがvirginicaであるかどうかを分類していた。 https://www.p...
LogisticRegressionクラスを用いてロジスティクス回帰分析の尤度関数の最適解を算出してみた 以下の記事で、ロジスティック回帰分析に従う、アヤメがvirginicaである確率\(p\)の計算式を算出してきた。 https...

決定木分析で、max_depth=2の場合に、正答率・適合率・再現率・F値等の評価指標を出力した結果は、以下の通り。

DecisionTreeClassifierクラスによる判定後の結果(max_depth=2の場合)

正答率および評価指標のaccuracyは、作成済モデルで算出した結果が、テスト用データの結果と一致する割合を計算したもので、\(\displaystyle \frac{15}{20}=0.75\) と計算される。

また、評価指標のprecision(適合率)は、予測した中で正解した割合を計算したもので、結果\(=1\)の場合は\(\displaystyle \frac{5}{5}=1.0\)、結果\(=2\)の場合は\(\displaystyle \frac{10}{15}≒0.67\) と計算される。

さらに、評価指標のrecall(再現率)は、テスト用データの中から正解した割合を計算したもので、結果\(=1\)の場合は\(\displaystyle \frac{5}{10}=0.5\)、結果\(=2\)の場合は\(\displaystyle \frac{10}{10}=1.0\) と計算される。

また、評価指標のf1-score(F値)は、適合率と再現率の調和平均で、結果\(=1\)の場合は\(\displaystyle \frac{2 \times 1 \times 0.5}{1+0.5}≒0.67\)、結果\(=2\)の場合は\(\displaystyle \frac{2 \times \displaystyle \frac{10}{15} \times 1}{\displaystyle \frac{10}{15}+1}=0.8\) と計算される。

さらに、評価指標のsupportは正解データの個数で、結果\(=1\)と結果\(=2\)の場合のいずれも、\(10\)となる。

その他の評価指標や混合行列については、以下のサイトを参照のこと。
https://note.nkmk.me/python-sklearn-confusion-matrix-score/



削除または保存していないWordドキュメントの復元方法【4DDiG Windowsデータ復元】ワード(Word)データ等のファイルを誤って削除してしまった場合は、通常はデータの復元ができませんが、4DDiGというソフトウェアを利用...

同様の決定木分析で、max_depth=4の場合に、正答率・適合率・再現率等の評価指標を出力した結果は以下の通りで、正答率が少し上昇していることが確認できる。

DecisionTreeClassifierクラスによる判定後の結果(max_depth=4の場合)

また、ロジスティクス回帰分析で、正答率・適合率・再現率等の評価指標を出力した結果は以下の通りで、90%の正答率になっていることが確認できる。

LogisticRegressionクラスによる判定後の結果

要点まとめ

  • データ分析や機械学習のためのライブラリの一つであるscikit-learnには、評価モデルを作成後、正答率・適合率・再現率・F値等の評価指標を出力する機能がある。