Iris-setosaと予測した52件のデータに対して、45件が正解で残りの7件はIris-setosaでは無い。
「その他」と予測した98件のデータに対して、93件が正解で残りの5件はIris-setosaであった事を示しています。
一般化する為に、この識別器に設定した概念を「+」、その反対を「ー」とします。
また、予測が正解したデータを「T(true)」、不正解を「F(false)」とします。
さらに設定した概念に当てはまる予測あるいは、設定した概念であったデータを「P(positive)」、その反対を「N(negative)」とすると次のように表すことが出来ます。
|
予測+ |
予測- |
合計 |
正解+ |
TP (true positive) |
FN (false negative) |
TP+FN |
正解- |
FP (false positive) |
TN (true negative) |
FP+TN |
合計 |
TP+FP |
FN+TN |
TP+FP+
FN+TN |
この表を
混同行列(Confusion Matrix)或は、
分割表(Contingency table)と呼びます。
Accuracy:正確度
正確度・正解率は次のようになります。
Accuracy = (TP+TN) / (TP+FP+FN+TN)
全てのデータに対して正解の割合がAccuracyです。
先ほどのデータを当てはめてみると、
Accuracy = (45+93) / 150 =
0.92
となります。もしすべてのデータに正解した場合1.0となります。
Accuracyでこの識別器の性能を評価してよいか?っていうとそうとも言えないようです。
例えば、1000件のデータのうちIris-setosaが20件しかないような場合、識別器がIris-setosaを100件と予測したとしても、Iris-setosa以外の正解数が大きい為、高いAccuracyになります。
例えば病気の検査のように全体のデータに対して陽性となるデータが少なく、尚且つ陽性を高い確率で発見する必要がある場合、Accuracyだけで識別器を評価することはできません。
他の指標と合わせて評価する必要があります。
Precision:精度、適合率
精度、適合率は次のようになります。
Precision = TP/ (TP+FP)
識別器がIris-setosaと判断したときの正解の割合です。
前のデータに当てはめると、
Precision= 45/(45+7) = 0.87
となります。もし識別器がIris-setosaと判断したすべてのデータが正解した場合1.0です。
Recall:再現率
再現率は次のようになります。
Recall = TP/(TP+FN)
実際のIris-setosaに対して識別器が正解した割合です。
前のデータに当てはめると、
Recall = 45/(45+5) = 0.9
となります。実際のIris-setosaの全てを識別器がIris-setosaと判断した場合1.0です。
F-Score:F値 (F-measure)
PrecisionとRecallを総合的に判断するための指標です。
F-measureと記述している方が一般的みたいです。
F-measure = 2 x (Precision x Recall) / (Precision + Recall)
前のデータに当てはめると、
F-measure = 2 x (0.87 x 0.9) / (0.87 + 0.9) = 0.88
となります。
AUC:ROC曲線下面積(Area Under the Curve)
真偽を次のような指標で表すこともあります。
|
予測+ |
予測- |
Positive Rate |
Negative Rate |
正解+ |
TP |
FN |
True Positive Rate
TP/(TP+FN) |
False Negative Rate
FN/(TP+FN) |
正解- |
FP |
TN |
False Positive Rate
FP /(FP+TN) |
True Negative Rate
TN /(FP+TN) |
閾値を変えた際の再現率を見る為に、横軸にFalse Positive Rate 縦軸にTrue Positive Rate をとり値をプロットしたものを
ROC曲線と呼びます。
このROC曲線を評価する方法が、ROC曲線下の面積である
AUCです。