機器學習——模型效果衡量標準
一、分類器的評估方法
1、混淆矩陣
混淆矩陣也稱誤差矩陣,是表示精度評價的一種標準格式,用n行n列的矩陣形式來表示。
它的每一列代表了預測類別 ,每一列的總數表示預測為該類別的資料的數目;每一行代表了資料的真實歸屬類別,每一行的資料總數表示該類別的資料例項的數目。
舉個例子:
預測 | ||||||
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類
通過這個可以將資料變為兩行兩列:
1類 | 其他類 | |
1類 | TP 8 | FP 2 |
其他類 | FN 7 | TN 83 |
2、準確率和召回率
查準率 = 精度 = precision 查全率 = 召回率 = recall,看上去可能有些難以理解,不過如果結合混淆矩陣,可以較為直觀的理解其中的含義:
還是以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加權調和平均:
a是引數,當a=1是,即為最常見F1.
4、ROC和AUC
受試者工作特徵曲線 (receiver operating characteristic curve,簡稱ROC曲線),又稱為感受性曲線(sensitivity curve)。
具體概念上的就不多贅述了,它的繪製還是基於之前混淆矩陣中的那四個值。
ROC關注兩個指標:
正例分對的概率
負例分成正例的概率
在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更大的分類器效果更好