概要
精度 (Accuracy)、適合率 (Precision)、再現率 (Recall)、F値 (F-Measure) について解説します。
指標の一覧
2クラス分類の場合
正答率、精度 (Accuracy)
全サンプルのうち、分類したクラスと正解クラスが一致する数の割合を正答率または精度 (accuracy) といいます。
Accuracy=TP+FP+TN+FNTP+TN
精度は scikit-learn の sklearn.metrics.accuracy_score() で計算できます。
0.6666666666666666
0.6666666666666666
誤答率 (Error Rate)
全サンプルのうち、分類したクラスと正解クラスが一致しない数の割合を誤答率 (Error Rate) といいます。正答率とは以下の関係があります。
ErrorRate=1–Accuracy
適合率 (Precision)
positive と分類したサンプルのうち、正解した割合を適合率 (Precision) といいます。
Precision=TP+FPTP
適合率は scikit-learn の sklearn.metrics.precision_score() で計算できます。
0.6666666666666666
0.6666666666666666
再現率 (Recall)
正解ラベルが positive のサンプルのうち、分類ラベルも positive となった割合を再現率 (Recall)、感度 (Sensitivity) または真陽性率 (True Positive Rate, TTR) といいます。
Recall=TP+FNTP
再現率は scikit-learn の sklearn.metrics.recall_score() で計算できます。
F値 (F-Measure)
次のように計算される値を F値 (F-Measure) といいます。
F1=Precision1+Recall12=Precision+Recall2(Precision×Recall)=2TP+FN+FP2TPscikit-learn の sklearn.metrics.f1_score() で計算できます。
多クラス分類の場合
m クラス分類問題の混同合行列を C とします。
正答率、精度 (Accuracy)
混同行列の対角成分は各クラスの正解した数を表しているので、精度は以下で計算します。
Accuracy=サンプル数正解したサンプル数=∑i=1m∑j=1mCij∑i=1mCii
0.3333333333333333
0.3333333333333333
マクロ平均 (macro mean)
まず各クラスごとに適合率 (Precision)、再現率 (Recall) 及びF値 (F-measure) を計算します。
Precisioni=TPi+FPiTPi=∑j=1mCjiCii
Recalli=TPi+FNiTPi=∑j=1mCijCii
F1i=Precision i1+Recall i12=Precisioni+Recalli2(Precisioni×Recalli)各指標の全クラスの平均をとったものをマクロ平均 (macro mean) といいます。
Precision=m1i=1∑mPrecisioniRecall=m1i=1∑mRecalliF1=m1i=1∑mF1i
0.3333333333333333
0.25
0.2857142857142857
マイクロ平均 (micro mean)
クラスごとではなく、混合行列全体で TP、FP、FN を算出して、適合率、再現率、F値を計算する方法をマイクロ平均といいます。
TPは混合行列の対角成分の合計で、FP、FN は混合行列の対角成分以外の合計になります。
TP=∑i=1mCii,FP=FN=∑i=jCij に注意すると、
Precision=TP+FPTP=∑i=1m∑j=1mCij∑i=1mCiiRecall=TP+FNTP=∑i=1m∑j=1mCij∑i=1mCiiF1=2TP+FN+FP2TP=TP+FPTPであり、精度、適合率、再現率、F値はすべて精度と同じ値になります。
参考文献
コメント