分類演算法評價標準
(http://www.tuicool.com/articles/uyaUZr)
一、引言
分類演算法有很多,不同分分類演算法又用很多不同的變種。不同的分類演算法有不同的特定,在不同的資料集上表現的效果也不同,我們需要根據特定的任務進行演算法的選擇,如何選擇分類,如何評價一個分類演算法的好壞,前面關於決策樹的介紹,我們主要用的正確率(accuracy)來評價分類演算法。
正確率確實是一個很好很直觀的評價指標,但是有時候正確率高並不能代表一個演算法就好。比如某個地區某天地震的預測,假設我們有一堆的特徵作為地震分類的屬性,類別只有兩個:0:不發生地震、1:發生地震。一個不加思考的分類器,對每一個測試用例都將類別劃分為0,那那麼它就可能達到99%的正確率,但真的地震來臨時,這個分類器毫無察覺,這個人類帶來的損失是巨大的。為什麼99%的正確率的分類器卻不是我們想要的,因為這裡資料分佈不均衡,類別1的資料太少,完全錯分類別1依然可以達到很高的正確率卻忽視了我們關注的東西。接下來詳細介紹一下分類演算法的評價指標。
二、評價指標
1、幾個常用的術語
這裡首先介紹幾個 常見 的 模型評價術語,現在假設我們的分類目標只有兩類,計為正例(positive)和負例(negtive)分別是:
1)True positives(TP): 被正確地劃分為正例的個數,即實際為正例且被分類器劃分為正例的例項數(樣本數);
2)False positives(FP): 被錯誤地劃分為 正 例的個數,即 實際為負例但被分類器劃分為正例的例項數;
3)False negatives(FN):被 錯誤地劃分為 負 例的個數,即 實際為 正 例但被分類器劃分為 負 例的例項數;
4)True negatives(
實 際 類 別 |
預測類別 |
|||
Yes |
No |
總計 |
||
Yes |
TP |
FN |
P (實際為Yes ) |
|
No |
FP |
TN |
N (實際為No ) |
|
總計 |
P’ (被分為Yes ) |
N’ (被分為No ) |
P+N |
上圖是這四個術語的混淆矩陣,我只知道FP叫偽陽率,其他的怎麼稱呼就不詳了。注意P=TP+FN表示實際為正例的樣本個數,我曾經誤以為實際為正例的樣本數應該為TP+FP,這裡只要記住True、False描述的是分類器是否判斷正確,Positive、Negative是分類器的分類結果。如果 正例計為1、負例計為-1,即positive=1、negtive=-1,用1表示True,-1表示False,那麼實際的類標=TF*PN,TF為true或false,PN為positive或negtive。例如True positives(TP)的實際類標=1*1=1為正例,False positives(FP)的實際類標=(-1)*1=-1為負例,False negatives(FN)的實際類標=(-1)*(-1)=1為正例,True negatives(TN)的實際類標=1*(-1)=-1為負例。
2、評價指標
1)正確率(accuracy)
正確率是我們最常見的評價指標, accuracy = (TP+TN)/(P+N),這個很容易理解,就是被分對的樣本數除以所有的樣本數,通常來說,正確率越高,分類器越好;
2)錯誤率(error rate)
錯誤率則與正確率相反,描述被分類器錯分的比例,error rate = (FP+FN)/(P+N),對某一個例項來說,分對與分錯是互斥事件,所以 accuracy =1 - error rate;
3)靈敏度(sensitive)
sensitive = TP/P,表示的是所有正例中被分對的比例,衡量了分類器對正例的識別能力;
4)特效度(specificity)
specificity = TN/N, 表示的是所有負例中被分對的比例,衡量了分類器對負例的識別能力;
5)精度(precision)
精度是精確性的度量,表示被分為正例的示例中實際為正例的比例, precision=TP/(TP+FP);
6)召回率(recall)
召回率是覆蓋面的度量,度量有多個正例被分為正例, recall=TP/(TP+FN)=TP/P=sensitive,可以看到召回率與靈敏度是一樣的。
7)其他評價指標
- 計算速度:分類器訓練和預測需要的時間;
- 魯棒性:處理缺失值和異常值的能力;
- 可擴充套件性:處理大資料集的能力;
- 可解釋性:分類器的預測標準的可理解性,像決策樹產生的規則就是很容易理解的,而神經網路的一堆引數就不好理解,我們只好把它看成一個黑盒子。
對於某個具體的分類器而言,我們不可能同時提高所有上面介紹的指標,當然,如果一個分類器能正確分對所有的例項,那麼各項指標都已經達到最優,但這樣的分類器往往不存在。比如我們開頭說的地震預測,沒有誰能準確預測地震的發生,但我們能容忍一定程度的誤報,假設1000次預測中,有5次預測為發現地震,其中一次真的發生了地震,而其他4次為誤報,那麼正確率從原來的999/1000-99.9%下降到996/1000=99.6,但召回率從0/1=0%上升為1/1=100%,這樣雖然謊報了幾次地震,但真的地震來臨時,我們沒有錯過,這樣的分類器才是我們想要的,在一定正確率的前提下,我們要求分類器的召回率儘可能的高。
(http://blog.csdn.net/xiaoyu714543065/article/details/8559741)
查準率和查全率反映了分類器分類效能的兩個方面。如果綜合考慮查準率與查全率,可以得到新的評價指標F1測試值,也稱為綜合分類率:
為了綜合多個類別的分類情況,評測系統整體效能,經常採用的還有微平均F1(micro-averaging)和巨集平均F1(macro-averaging )兩種指標。巨集平均F1與微平均F1是以兩種不同的平均方式求的全域性的F1指標。其中巨集平均F1的計算方法先對每個類別單獨計算F1值,再取這些F1值的算術平均值作為全域性指標。而微平均F1的計算方法是先累加計算各個類別的a、b、c、d的值,再由這些值求出F1值。由兩種平均F1的計算方式不難看出,巨集平均F1平等對待每一個類別,所以它的值主要受到稀有類別的影響,而微平均F1平等考慮文件集中的每一個文件,所以它的值受到常見類別的影響比較大。
(http://blog.csdn.net/xiahouzuoxin/article/details/43165253)
Precision和Recall(有人中文翻譯成召回率)則分別構成了PR曲線的y軸和x軸。
ROC:
ROC曲線繪製程式碼:
AUC(Area Under the ROC Curve)