統計学および機械学習の評価指標

機械学習および
データマイニング
問題
理論
  • 偏りと分散のトレードオフ
  • 計算論的学習理論(英語版)
  • 経験損失最小化(英語版)
  • オッカム学習(英語版)
  • PAC学習
  • 統計的学習(英語版)
  • VC理論(英語版)
学会・論文誌等
  • NIPS(英語版)
  • ICML(英語版)
  • ML(英語版)
  • JMLR(英語版)
  • ArXiv:cs.LG
全般
  • 統計学および機械学習の評価指標

カテゴリ Category:機械学習

カテゴリ Category:データマイニング

統計学および機械学習の評価指標(とうけいがくおよびきかいがくしゅうのひょうかしひょう)では統計学および(教師ありの)機械学習の評価指標について述べる。

回帰に対する評価指標

以下のものがある[1][2][3]。観測値を y = { y 1 ,   y 2 ,   ,   y N } {\displaystyle y=\left\{y_{1},\ y_{2},\ \cdots ,\ y_{N}\right\}} 、推定値を y i ^ = { y 1 ^ ,   y 2 ^ ,   ,   y N ^ } {\displaystyle {\hat {y_{i}}}=\left\{{\hat {y_{1}}},\ {\hat {y_{2}}},\ \cdots ,\ {\hat {y_{N}}}\right\}} と表す。これらの評価指標は代表的なPythonオープンソース機械学習ライブラリscikit-learnではmetricsモジュールに実装されており、評価指標を計算する関数を併記する。

略称 名称(英語) 名称(日本語) 定義 scikit-learnのmetricsモジュールでの関数
MSE Mean Squared Error 平均二乗誤差 1 N i = 1 N ( y i y i ^ ) 2 {\displaystyle {1 \over N}\sum _{i=1}^{N}(y_{i}-{\hat {y_{i}}})^{2}} mean_squared_error(y_true,y_pred)
RMSE Root Mean Squared Error 二乗平均平方根誤差 1 N i = 1 N ( y i y i ^ ) 2 {\displaystyle {\sqrt {{1 \over N}\sum _{i=1}^{N}(y_{i}-{\hat {y_{i}}})^{2}}}} np.root(mean_squared_error(y_true,y_pred))
MAE Mean Absolute Error 平均絶対誤差 1 N i = 1 N | y i y i ^ | {\displaystyle {1 \over N}\sum _{i=1}^{N}|y_{i}-{\hat {y_{i}}}|} mean_absolute_error(y_true,y_pred)
MAPE Mean Absolute Percentage Error 平均絶対誤差率 1 N i = 1 N | y i y i ^ | y i {\displaystyle {1 \over N}\sum _{i=1}^{N}{\frac {|y_{i}-{\hat {y_{i}}}|}{y_{i}}}}
RMSPE Root Mean Squared Percentage Error 平均二乗パーセント誤差の平方根 1 N i = 1 N ( y i y i ^ y i ) 2 {\displaystyle {\sqrt {{1 \over N}\sum _{i=1}^{N}\left({\frac {y_{i}-{\hat {y_{i}}}}{y_{i}}}\right)^{2}}}}
RMSLE Root Mean Squared Logarithmic Error 1 N i = 1 N ( log ( y i + 1 ) log ( y i ^ + 1 ) ) 2 {\displaystyle {\sqrt {{1 \over N}\sum _{i=1}^{N}(\log(y_{i}+1)-\log({\hat {y_{i}}}+1))^{2}}}} mean_squared_log_error(y_true,y_pred)
R 2 {\displaystyle R^{2}} coefficient of determination 決定係数 1 i = 1 N ( y i y i ^ ) 2 i = 1 N ( y i y ¯ ) 2 {\displaystyle 1-{\sum _{i=1}^{N}(y_{i}-{\hat {y_{i}}})^{2} \over \sum _{i=1}^{N}(y_{i}-{\bar {y}})^{2}}} 、ここで y ¯ = 1 N i = 1 N y i {\displaystyle {\bar {y}}={1 \over N}\sum _{i=1}^{N}y_{i}} r2_score(y_true,y_pred)

ただし、決定係数は上に挙げたものの他に7種類の定義が知られている。

詳細は「決定係数」を参照

二値分類

混同行列

詳細は「混同行列」を参照
実際の値

真陽性

True Positive(TP)

偽陽性

False Positive(FP)

偽陰性

False Negative(FN)

真陰性

True Negative(TN)

scikit-learnではmetricsモジュールの「confusion_matrix(y_true, y_pred)」。

各種指標

以下のものがある[4][5][6][7][8]

実際の値
総数 割合

真陽性

True Positive(TP)

偽陽性

False Positive(FP)

第一種の過誤

陽性適中率(Positive Prediction Value、PPV)

適合率(Precision) T P T P + F P {\displaystyle {TP \over TP+FP}}

偽発見率(英語版)(False Discovery Rate、FDR)

F P T P + F P {\displaystyle {FP \over TP+FP}}

偽陰性

False Negative(FN)

第二種の過誤

真陰性

True Negative(TN)

False Omission Rate (FOR)

F N F N + T N {\displaystyle {FN \over FN+TN}}

陰性適中率(Negative Predictive Value 、NPV)

T N F N + T N {\displaystyle {TN \over FN+TN}}

真陽性率(True Positive Rate 、TPR)、再現率(Recall)、感度(Sensitivity)、Hit Rate

T P T P + F N {\displaystyle {TP \over TP+FN}}

偽陽性率(False Positive Rate 、FPR)、

Fall-out

F P F P + T N {\displaystyle {FP \over FP+TN}}


偽陰性率(False Negative Rate、FNR)、Miss Rate

F N T P + F N {\displaystyle {FN \over TP+FN}}

真陰性率(True Negative Rate 、TNR)、

特異性(Specificity)、

Selectivity

T N F P + T N {\displaystyle {TN \over FP+TN}}

scikit-learnではmetricsモジュールの下記の関数を呼び出すことで計算可能:

  • 適合率:precision_score(y_true, y_pred)
  • 再現率:recall_score(y_true, y_pred)
名称 名称(英語) 定義 直観的意味、備考 scikit-learnのmetricsモジュールでの関数
検査前確率 Pre-test Probability T P + F N T P + F N + F P + F N {\displaystyle {TP+FN \over TP+FN+FP+FN}} 全データにおける正例の割合。

医学では「有病割合」(Prevalence)とも呼ばれる

精度 Accuracy T P + T N T P + T N + F P + F N {\displaystyle {TP+TN \over TP+TN+FP+FN}} 予測が正解したものの割合。

「正解率」とも呼ばれる。

accuracy_score(y_true, y_pred)
誤分類率 classification error rate 1 A c c u r a c y {\displaystyle 1-\mathrm {Accuracy} }
balanced accuracy (BA) T P R + T N R 2 {\displaystyle {\frac {TPR+TNR}{2}}}
スレットスコア Threat score(TS) T P T P + F N + F P {\displaystyle {TP \over TP+FN+FP}} 「重要成功指数」(Critical Success Index、CSI)とも呼ばれる。

精度の分母からTNを削ったもの。正例に比べ負例が極端多い場合、TNは大きな値になるため精度よりも有効な指標となる。

Fβ Fβ-rate 1 + β 2 β 2 r e c a l l + 1 p r e c i s i o n = ( 1 + β 2 ) r e c a l l p r e s i c i o n r e c a l l + β 2 p r e s i c i o n {\displaystyle {1+\beta ^{2} \over {\beta ^{2} \over \mathrm {recall} }+{1 \over \mathrm {precision} }}={(1+\beta ^{2})\mathrm {recall} \cdot \mathrm {presicion} \over \mathrm {recall} +\beta ^{2}\mathrm {presicion} }} 適合率と再現率の重み付き調和平均。特にβ=1のケースであるF1がよく使われる。

F 1 = T P T P + F P + F N 2 {\displaystyle F_{1}={\frac {TP}{TP+{\frac {FP+FN}{2}}}}} であり、分母にTNがないので、スレットスコアと同様、正例に比べ負例が極端多い場合、有効な指標となる。

fbeta_score()

f1_score()

Markedness (MK) P P V + N P V 1 {\displaystyle PPV+NPV-1} 「deltaP」とも呼ばれる
Bookmaker Informedness (BM) T P R + T N R 1 {\displaystyle TPR+TNR-1} 単に「Informedness」とも呼ばれる。「deltaP'」とも呼ばれる。
- マシューズ相関係数(Matthews Correlation Coefficient

、MCC)

T P T N F P F N ( T P + F P ) ( T P + F N ) ( T N + F P ) ( T N + F N ) {\displaystyle {TP\cdot TN-FP\cdot FN \over {\sqrt {(TP+FP)(TP+FN)(TN+FP)(TN+FN)}}}} 不均衡なデータに対しても性能を適切に評価できる指標。 matthews_corrcoef()
- Fowlkes–Mallows index(FM) T P T P + F P T P T P + F N = P P V T P R {\displaystyle {\sqrt {{\frac {TP}{TP+FP}}\cdot {\frac {TP}{TP+FN}}}}={\sqrt {PPV\cdot TPR}}}
- Prevalence Threshold (PT) T P R ( T N R + 1 ) + T N R 1 ( T P R + T N R 1 ) {\displaystyle {\frac {{\sqrt {TPR(-TNR+1)}}+TNR-1}{(TPR+TNR-1)}}}
陽性尤度比 Positive likelihood ratio(LR+) F P R T P R {\displaystyle {FPR \over TPR}} LR+= T P / F P ( T P + F N ) / ( F P + T N ) {\displaystyle {TP/FP \over (TP+FN)/(FP+TN)}} =検査後オッズ/検査前オッズ

が成立する。

陰性尤度比 Negative likelihood ratio(LR−) F N R T N R {\displaystyle {FNR \over TNR}}
診断オッズ比(英語版) Diagnostic odds ratio(DOR) L R + L R {\displaystyle {LR+ \over LR-}}


クロスエントロピー cross entropy 1 N i N y i log p i + ( 1 y i ) log ( 1 p i ) {\displaystyle -{1 \over N}\sum _{i}^{N}y_{i}\log p_{i}+(1-y_{i})\log(1-p_{i})} log損失(log loss)とも。

yii番目のデータが正例なら1、負例なら0、piは予測器が正例だと予測した確信度∈[0,1]。

log_loss()

脚注

[脚注の使い方]
  1. ^ “いまさら聞けない機械学習の評価関数”. Gunosy (2016年8月5日). 2020年4月1日閲覧。
  2. ^ “モデル最適化指標・評価指標の選び方”. DataRobot (2018年5月29日). 2020年4月1日閲覧。
  3. ^ 門脇大輔, 阪田隆司, 保坂桂佑, 平松雄司『Kaggleで勝つデータ分析の技術』技術評論社、2019年10月9日、62-67頁。ISBN 978-4297108434。 
  4. ^ Fawcett, Tom (2006). “An Introduction to ROC Analysis”. Pattern Recognition Letters 27 (8): 861–874. doi:10.1016/j.patrec.2005.10.010. http://people.inf.elte.hu/kiss/11dwhdm/roc.pdf. 
  5. ^ Powers, David M W (2011). “Evaluation: From Precision, Recall and F-Measure to ROC, Informedness, Markedness & Correlation”. Journal of Machine Learning Technologies 2 (1): 37–63. http://www.flinders.edu.au/science_engineering/fms/School-CSEM/publications/tech_reps-research_artfcts/TRRA_2007.pdf. 
  6. ^ Ting, Kai Ming (2011). Encyclopedia of machine learning. Springer. ISBN 978-0-387-30164-8. https://link.springer.com/referencework/10.1007%2F978-0-387-30164-8 
  7. ^ “WWRP/WGNE Joint Working Group on Forecast Verification Research”. Collaboration for Australian Weather and Climate Research. World Meteorological Organisation (2015年1月26日). 2019年7月17日閲覧。
  8. ^ “The advantages of the Matthews correlation coefficient (MCC) over F1 score and accuracy in binary classification evaluation”. BMC Genomics 21 (6). (January 2020). doi:10.1186/s12864-019-6413-7. PMC 6941312. PMID 31898477. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6941312/.