1. 程式人生 > >機器學習——模型效果衡量標準

機器學習——模型效果衡量標準

一、分類器的評估方法

1、混淆矩陣

混淆矩陣也稱誤差矩陣,是表示精度評價的一種標準格式,用n行n列的矩陣形式來表示。

它的每一列代表了預測類別 ,每一列的總數表示預測為該類別的資料的數目;每一行代表了資料的真實歸屬類別,每一行的資料總數表示該類別的資料例項的數目。

舉個例子:

表1
                                                                                     預測
1類 2類 3類 4類
1類 8 0 1 1
2類 1 16 2 1
3類 3 1 22 4
4類 3 4 3 30

在表格中,1~4代表了四種類別,假設有100個樣本,其中1類10個、2類20個、3類30個、4類40個。

現在將1類中的10個樣本通過一個分類器,最後得到結果,1類8個,2類0個,3類和4類各1個。

其他幾類如列表所示。

可以從列表中觀察到,在矩陣對角線上的是分類正確的資料,而在其他位置的則是分類錯誤的資料,比如第四行,它將40個屬於類4的資料輸入分類器,其中錯誤判斷成1類的有3個,錯判成2類的有4個,錯判成3類的有3個,另外30個分類正確。

整個混淆矩陣的視覺化效果很好。

在混淆矩陣中,有四個概念:false positives,falsenegatives,true positives和true negatives

以表1中的1類為例

TP(True Positive): 真實為1類,預測也為1類

FN(False Negative): 真實不為1類,預測為1類

FP(False Positive): 真實為1類,預測不為1類

TN(True Negative): 真實不為1類,預測也不為1類

通過這個可以將資料變為兩行兩列:

表2
  1類 其他類
1類 TP 8 FP 2
其他類 FN 7 TN 83

 

2、準確率和召回率

查準率 = 精度 = precision  查全率 = 召回率 = recall,看上去可能有些難以理解,不過如果結合混淆矩陣,可以較為直觀的理解其中的含義:
Precision = \frac{TP}{TP+FP}

Recall = \frac{TP}{TP+FN}

還是以1類為例,它的準確率是0.8,召回率為0.5333.

兩者取值在0和1之間,數值越接近1,查準率或查全率就越高。

在這個資料集中不是很能說明查準率和召回率的重要性,如果換一個極端的資料再來看:

  1類 其他類
1類 TP 0 FP 10
其他類 FN 0 TN 90

100個樣本中,有1類10個,其他類90個,而分類器則是將所有的樣本都劃分到了其他類,這時如果只算準確率,準確率高達0.9,但很明顯,這個分類器是不對的,而通過計算recall和precision,可以很明顯發現這一點。

3、F值(F-Measure)

我們希望Precision越高越好,同時Recall也越高越好,但事實上這兩者在某些情況下有矛盾的。

比如另一個極端情況下,我們只搜尋出了一個結果,且是準確的,那麼Precision就是100%,但是Recall就很低;而如果我們把所有結果都返回,那麼比如Recall是100%,但是Precision就會很低。

所以,我們引入了綜合評價指標F值(F-Measure)。

F-Measure是Precision和Recall加權調和平均

F=\frac{\left ( a^{2} +1\right )Precision*Recall}{a^2(Precision+Recall)}

a是引數,當a=1是,即為最常見F1.

4、ROC和AUC

受試者工作特徵曲線 (receiver operating characteristic curve,簡稱ROC曲線),又稱為感受性曲線(sensitivity curve)。

具體概念上的就不多贅述了,它的繪製還是基於之前混淆矩陣中的那四個值。

ROC關注兩個指標:

True Positive Rate ( TPR ) =\frac{TP}{TP+FN}

正例分對的概率

False Positive Rate( FPR )= \frac{FP}{FP+TN}

負例分成正例的概率

在ROC 空間中,每個點的橫座標是FPR,縱座標是TPR。

在一個二分類模型中,假設採用邏輯迴歸分類器,其給出針對每個例項為正類的概率,那麼通過設定一個閾值如0.5,概率大於等於0.5的為正類,小於0.5的為負類。對應的就可以算出一組(FPR,TPR),在平面中得到對應座標點。

根據不同的閾值進行分類,根據分類結果計算得到ROC空間中相應的點,連線這些點就形成ROC curve。

AUC

AUC (Area Under Curve) 被定義為ROC曲線下的面積,顯然這個面積的數值不會大於1。又由於ROC曲線一般都處於y=x這條直線的上方,所以AUC的取值範圍一般在0.5和1之間。

AUC更大的分類器效果更好