>100 Views
February 05, 26
スライド概要
PyCaretのcompare_models関数は、全アルゴリズムを自動で訓練し、交差検証に基づいた性能一覧を即座に生成します。評価の土台となるのは、予測と実測の結果を2×2で整理した混同行列です。
主な指標の意味は以下の通りです。
●正解率(Accuracy): 全体の的中率。
●AUC: ROC曲線下の面積。1.0に近いほど高性能(0.8以上が「良い」目安)。
●再現率(Recall): 実際の陽性を漏らさず捉えた割合。
●適合率(Precision): 陽性と予測した中の正確性。
●F1スコア: 再現率と適合率のバランス(調和平均)。
●Kappa/MCC: 一致度や不均衡データへの適応力。
正解率だけでは、データの偏りがある場合に「陽性を見逃す」などのリスクを正しく評価できません。ビジネスの目的に応じ、「見逃しを減らす」か「空振りを防ぐ」かを見極めるために、これらの指標を多角的に活用することが不可欠です。
すべてのビジネスパーソンが意思決定プロセスにデータを活用する思考を身につけるため、まずは、データサイエンスの分析を体験していきましょう。SECIモデルの最初の段階、共同化(Socialization)からはじめていきます。 下記のブログで、ここにアップしたスライド、動画を随時、公開中です。 【ブログ】https://tutorial4datascience.blogspot.com/ 【Youtubeチャンネル】https://www.youtube.com/@DataScience_for_everyone 【Kindle】そして、このブログをまとめて書籍にしました! https://amzn.to/4ryVppn https://amzn.to/4pGgFb1
4th STEP 機械学習 前処理 Section 6 分 類(3) モデルの評価・比較 Setup Compare Models Analyze Model データサイエンス チュートリアル Prediction Save Model 1
4th STEP 機械学習 Section6 分類(3)モデルの評価・比較 compare_models関数 『compare_models』関数は、ライブラリで使用可能なすべてのアルゴリズム(PyCaretでは『モデル』と言います)を交差 検証を用いて訓練し、評価指標を算出して性能を評価します。この関数の出力は、交差検証での平均スコアを含む評価指 標一覧(次スライド参照)で、様々なアルゴリズムの性能を比較できます。 関数型API オブジェクト指向API データサイエンス チュートリアル 2
4th STEP 機械学習 Section6 分類(3)モデルの評価・比較 compare_models 関数の出力 『compare_models』関 数の出力は、各モデルの評価 指標の一覧表です。 モデルの名称 モデルの略称 正解率 真陽性率 Area Under the Curve 適合率 評価指標は、537行×9列の訓練デー タ(デフォルトで70%)を用いて、モデ ルを作成し、231行×9列(デフォルト で30%)のテストデータに適合させた 結果 モデル モデルの学習と評価にかかった合計時間(秒) マシューズ相関係数 性能評価 カッパ係数 ※ 正解率(Accuracy) で降順に表示されます! F1-score モデル 【参考】 PyCaretの初心者向けまとめ (分類編) https://qiita.com/shuhigashi/ite ms/cb6816a1da1d347bbdc2 データサイエンス チュートリアル 3
4th STEP 機械学習 Section6 分類(3)モデルの評価・比較 評価指標の元になる混同行列 混同行列(Confusion Matrix)とは、下記のように二項分類 の結果をまとめた2×2の行列です。 混同行列を基に、 『compare_models』関数の出力と なる性能評価を表す下記の評価指標が算出されます。 検 査(予 測) Positive Negative 陽性 陰性 診 断(結 果) 陽性 Positive 真陽性 True Positive (TP) 偽陽性 False Positive (FP) 陰性 Negative 偽陰性 False Negative (FN) 真陰性 True Negative (TN) 正解率 Accuracy Area Under the Curve AUC 真陽性率 Recall 適合率 Prec. F1-score F1 カッパ係数 Kappa マシューズ相関係数 データサイエンス チュートリアル MCC 4
4th STEP 機械学習 Section6 分類(3)モデルの評価・比較 ① 正解率 Accuracy 陽性 Positive 陰性 Negative Positive 検 査(予 測) 真陽性 True Positive (TP) 偽陰性 False Negative (FN) Negative 正解率(Accuracy)は、予測結果が実際に当たっていた割合。 偽陽性 False Positive (FP) 真陰性 True Negative (TN) 全 体 データサイエンス チュートリアル 陽性 陰性 TP + TN 診 断(結 果) ピンクの部分の和、すなわち、検査で陽性かつ診断でも陽性(TP) と検査で陰性かつ診断でも陰性(TN)の和を分子に、分母に全体 の和を算出した比率。 5
4th STEP 機械学習 Section6 分類(3)モデルの評価・比較 ② AUC(Area Under the Curve) ちなみに、下図のグラフは、横軸を混同行列の「偽陽性率(FP 率)」、縦軸を「真陽性率(TP率)」にして、数値をプロットし たもので、ROC曲線と呼ばれます。ROC曲線が、対角線より左 上にあればあるほど予測性能が高いということができます。 評価指標 また、グラフの右下に書かれている赤枠で囲んだところは、それぞ れのAUCが書かれています。 それを見ると、クラス「0」とクラス「1」それぞれのROC曲線は、 AUCが0.86であり、両クラスに対して同程度の性能を示してい ることがわかります。マイクロ平均とマクロ平均は、二項分類には あまり関係がありませんので、説明は割愛します。各データを3以 上のカテゴリーに分類する場合(多項分類)のAUCの算出方 法の違いによるものだと思っておいてください。詳しくは、下記を参 照してください。 真陽性率(TP率) AUC(Area Under the Curve)とは、主に二値分類問題 に対する評価指標の一つで、「ROC曲線の下の面積」を意味 します。 https://di-acc2.com/analytics/ai/10801/ データサイエンス チュートリアル 偽陽性率(FP率) 6
4th STEP 機械学習 Section6 分類(3)モデルの評価・比較 ② AUC(Area Under the Curve) ACUに関しては、おおまかに下記のような判断をします。 0.9~1.0: 非常によい(excellent) 0.8~0.9: よい(good) 0.7~0.8: まあまあ(fair) 0.6~0.7: よくない(poor) 0.5~0.6: 失敗(fail) 真陽性率(TP率) この指標は、0.0(=0%)~1.0(=100%)の範囲の 値を取り、1.0に近いほどモデルの予測性能が高いことを示し ます。 ざっくりとROC曲線が、対角線より左上にあればあるほど予測 性能が高いと直感的に判断することができます。 【出典】 AUC(Area Under the ROC Curve:ROC曲線の下の面積)とは? 【参考】 ROC 曲線と AUC についてわかりやすく解説してみた データサイエンス チュートリアル 偽陽性率(FP率) 7
4th STEP 機械学習 Section6 分類(3)モデルの評価・比較 ② AUC(Area Under the Curve) ROC曲線を見ることで、曲線の形状からも直感的にモデルの 性能が読み取れます。 真陽性率(TP率) ●ROC曲線が対角線に近い直線になる場合→モデルはデータをほとんど学習 できておらず、性能は偶然と同程度 ●ROC曲線が左上に大きく張り出す場合→モデルは非常に高い性能を持って いると考えられます ●ROC曲線が対角線よりも左上に位置する場合→モデルはランダムな予測よ りも優れていると考えられます。AUCが0.7から0.9の範囲にある場合、モデルは 実用的な性能を持っていると言えます。 ●ROC曲線が特定の部分で急激に立ち上がる、または平坦になる場合→モデ ルが特定の状況下でのみ高い性能を発揮する、または特定の状況下で性能が 著しく低下することを示唆しています。 偽陽性率(FP率) 二項分類とは異なり、多クラス分類では複数のクラスが存在するため、ROC 曲線を単純に描画することができません。そこで、多クラス分類のROC曲線 を評価するために、「macro-average」と「micro-average」という二つの 平均化手法が用いられます。ここでは、無視しておきましょう。 データサイエンス チュートリアル 8
4th STEP 機械学習 Section6 分類(3)モデルの評価・比較 ③ 真陽性率(再現率) Recall 陽性 Positive 陰性 Negative Positive 真陽性 True Positive (TP) 偽陰性 False Negative (FN) Negative 検 査(予 測) 偽陽性 False Positive (FP) 真陰性 True Negative (TN) TP TP + FN データサイエンス チュートリアル 陽性 陰性 ピンクの部分の和、すなわち、検査で陽性かつ診断でも陽性 (TP)を分子に、分母に診断で陽性だった人数を算出した比率 を算出したもの。 診 断(結 果) 真陽性率 (Recall)は、実際に陽性であるもののうち、正しく陽性 であると予測できた割合。再現率とも言います。 9
4th STEP 機械学習 Section6 分類(3)モデルの評価・比較 ④ 適合率 Prec. 陽性 Positive 陰性 Negative Positive 真陽性 True Positive (TP) 偽陰性 False Negative (FN) Negative 検 査(予 測) 偽陽性 False Positive (FP) 真陰性 True Negative (TN) TP TP + FP データサイエンス チュートリアル 陽性 陰性 ピンクの部分の和、すなわち、検査で陽性かつ診断でも陽性 (TP)を分子に、分母に検査で陽性だった人数を算出した比率 を算出したもの。 診 断(結 果) 適合率(Precision/略してPrec.)は、陽性であると予測した もののうち、実際に陽性だった割合を表します。 10
4th STEP 機械学習 Section6 分類(3)モデルの評価・比較 ⑤ F1-score F1-scoreは、 『compare_models』関数の出力では 『F1』と表示されています。真陽性率 (Recall)と適合率 (Precision/略してPrec.)の両方を加味した評価を表し ます。 (1)にH=F1、n=2、x₁=Precision、x₂=Recallを代入する と、 具体的には、適合率と真陽性率の調和平均がF1-scoreです。 分母の分数を通分し、分数の割り算を掛け算に変換すると、 下記のようになります。 調和平均は、往復で異なる速度で移動した場合の平均速 度、複数の商品の平均購入レート、株価収益率などの平均を 計算する際に用いられます。 求め方は、データがn個あり、それぞれの値をx₁, x₂, ..., xnとす ると、調和平均Hは以下の式で表されます。 H = n / (1/x₁ + 1/x₂ + ... + 1/xn) F1 = 2 / (1/Precision + 1/Recall) F1 = 2 * (Precision * Recall) / (Precision + Recall) F1-scoreは、このように求められたものです。 ………(1) 調和平均に関しては、速度の平均値を求める例がわかりやすい!下記のページを参照してみましょう。 https://atmarkit.itmedia.co.jp/ait/articles/2311/22/news040.html データサイエンス チュートリアル 11
4th STEP 機械学習 Section6 分類(3)モデルの評価・比較 ⑥ カッパ係数 & マシューズ相関係数 カッパ係数 Kappa マシューズ相関係数 MCC ある現象を2人の観察者が観察した場合の結果がどの程度 一致しているかを表す統計量。 マシューズ相関係数(MCC)は、機械学習における二項分 類の性能を評価するための指標。 -1から+1までの値をとり、 +1は完全な予測、0はランダムな予測、-1は完全な逆予測 0から1までの値をとり、値が大きいほど一致度が高いといえる。 を表します。 0.6以上であれば、観察者間の一致度 特に、クラスの分布が不均衡なデータセット(一方のクラス (reproducibility)が十分高いと判断されます。 が極端に少ないなど)において、モデルの性能を正確に評価 するのに適しています。 ちなみに、MCCは以下の式で計算されます。 MCC = (TP × TN - FP × FN) / √((TP + FP) × (TP + FN) × (TN + FP) × (TN + FN)) ちなみに、カッパ係数は次の式で算出されます。 カッパ係数 = (観察された一致度-偶然に よる一致度) / (1-偶然による一致度) データサイエンス チュートリアル 12
4th STEP 機械学習 Section6 分類(3)モデルの評価・比較 なぜ複数の評価指標を求めるのか? 120人の患者の検査結果と診断結果が①の混合行列のよ うなとき、正解率は0.88と高いように思いますが、混合行列 は真陰性が非常に多く、偏ったものになっています。 もし、②のように、真陽性の患者がすべて偽陽性の患者に なってしまったら、すなわち、検査で陽性の患者がすべて陰性 と診断されてしまったら、正解率はどうなるでしょうか? ① 正解率=0.88 ②から導き出される正解率、真陽性率、適合率をご覧ください。 正解率は①とほぼ変わりませんが、他の評価指標である真陽 性率、適合率は、非常に低いものとなります。 正答率は直感的で簡単に算出できますが、性能評価は複数 の数値で判断しましょう。 ② 正解率=0.88 真陽性率=0.33 真陽性率=0 適合率=0.5 適合率=0 よくわかりやすく解説している下記のページを参照してみましょう。 https://note.com/noa813/n/nef0692042cdf データサイエンス チュートリアル 13