忍者ブログ
Slic3rの設定についてまとめてます。Slic3rの日本語版が見当たらなかったので、使い方をまとめました。 最近はC#のメモ帳代わりになってます。

機械学習の学習日記 | Microsoft Azure Machine Learning /Evaluation results

Evaluation results (評価結果)をもう少しだけ理解を深めるために、WEKAのサンプルデータiris.arffで色々確認してみます。

評価項目

評価結果には以下の項目が含まれていました。
Accuracy:正確度
Precision:精度、適合率
Recall:再現率
F-Score:F値
AUC:ROC曲線下面積(Area Under the Curve)

これらの値が表しているものを理解する事を目的とします。

前提

iris.arffの内容についてはこちらを参照
iris.arffのsepallength特徴から、Iris-setosaか否かの識別を行うものとします。
具体的にはアヤメの「がく片の長さ」から、「ひおうぎあやめ」かどうかを判別します。

sepallength特徴の分布は次のようになります。


青い棒グラフがIris-setosaを示しており、オレンジの棒グラフがIris-versicolorとIris-virginicaを示しています。
Iris-setosaを識別するためのsepallengthの閾値をθとして、θ=5.4と仮定します。
 

混同行列(Confusion Matrix)/分割表(Contingency table)

sepallengthの閾値θをθ=5.4とし、θ以上をIris-setosaと識別させた場合、その識別器はiris.arffのデータの事例数に対して次のような予測結果となります。 

予測
Iris-setosa
予測
その他
合計
52 98 150

この予測に対してiris.arffのデータを照らし合わせると次のようになります。

  予測
Iris-setosa
予測
その他
合計
正解
Iris-setosa
45 5 50
正解
その他
7 93 100
合計 52 98 150

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です。
ROC曲線がランダムなデータ(AUC=0.5)と理想的なデータ(AUC=1)の間に作られるます。


関連記事