最近做了一些分類模型,所以打算對分類模型常用的評價指標做一些記錄,說一下自己的理解。使用何種評價指標,完全取決於應用場景及數據分析人員關注點,不同評價指標之間並沒有優劣之分,只是各指標側重反映的信息不同。為了便於后續的說明,先建立一個二分類的混淆矩陣 ,以下各參數的說明都是針對二元分類
1.准確率 accuracy
准確率:樣本中類別預測正確的比例,即
准確率反映模型類別預測的正確能力,包含了兩種情況,正例被預測為正例,反例被預測為反例,當我們對類別為1、類別為0的關注程度一致時(類別為對稱的),准確率是一個不錯的評價指標,但是如果我們更關注樣本被預測為類1的情況,准確率就不是一個合適的指標,因為通過它你無法知道正例的預測情況,因為反例的預測情況也包含在其中,而這並不是我們關注的。
2.精確率 precision
精確率:被預測為正例的樣本中,真實的正例所占的比例,即
精確率反映模型在正例上的預測能力,該指標的關注點在正例上,如果我們對正例的預測准確性很關注,那么精確率是一個不錯的指標。例如在醫學病情診斷上,患者在意的是“不要誤診”,此時精確率是合適的指標。
精確率是受樣本比例分布影響的,反例數量越多,那么其被預測為正例的數量也會越多,此時精確率就會下降,因此當樣本分布不平衡時,要謹慎使用精確率。
3.召回率 recall
召回率:真實的正例樣本中,被預測為正例的樣本所占的比例,即
召回率反映模型在正例正確預測上的覆蓋率,有點“不允許有一條漏網之魚”的感覺,如果我們關注的是對真實正例樣本預測為正的全面性,那么召回率是很好的指標。例如在一些災害檢測的場景中,任何一次災害的漏檢都是難以接受的,此時召回率是很合適的指標(寧可錯殺一百,不可放過一人,哈哈哈)。
召回率是不受樣本比例不平衡影響的,因為它只關注的是正例樣本上的預測情況。
4.F1-score
F1-score :兼顧精准率與召回率的模型評價指標,其定義為:
當對精准率或者召回率沒有特殊要求時,評價一個模型的優劣就需要同時考慮精准率與召回率,此時可以考慮使用F1-score。F1-score實際上是precision與recall的調和平均值,而調和平均值的計算方式為
調和平均值有特點呢?|a - b| 越大,c 越小;當 a - b = 0 時,a = b = c,c 達到最大值,具體到精准率和召回率,只有當二者大小均衡時,F1-score 才高。同時,F1-score也考慮了Precision、Recall數值大小的影響,只有當二者都比較高時,F1-score才會比較大。
5.ROC-AUC
ROC(receiver operating characteristic curve)是一條曲線,其橫軸表示的是FPR(False Positive Rate)——錯誤地預測為正例的概率,縱軸表示的是TPR(True Positive Rate)——正確地預測為正例地概率,二者地計算如下:
從TPR地計算方式來看,其實際上就是召回率。前面已說過,Recall不受樣本不平衡的影響,實際上FPR也具有該特點。ROC曲線類似於下圖,TPR、FPR地取值范圍均在0~1之間
那么這張圖是如何繪制出來地呢?在分類模型中(以決策樹分類模型為例),可以計算出樣本屬於正例/反例的概率,這個概率是基於葉子節點上的樣本計算的,如果一個葉子節點上包含了m個正例、n個反例,那么當測試集上的樣本被划分到該葉子節點上時,其被預測為正例的概率即為:m/(m+n)。獲知樣本被預測為正例的概率之后,設定一個概率閾值,大於等於該閾值的樣本屬於正例,小於該閾值的樣本屬於反例,這樣就可以計算出TPR和FPR,在0~1上遞增該閾值(需選定一個遞增步長),就可以計算出一些列的TPR與FPR,即可繪制出ROC;在回歸模型中,是一樣的方式。
AUC(area under curve)是一個數值,從定義上可以直觀的看到其表征的意思——曲線與坐標軸圍成的面積,ROC-AUC即表示的是ROC曲線與坐標軸圍成的面積。
很明顯的,TPR越大、FPR越小,模型效果越好,因此ROC曲線越靠近左上角表明模型效果越好,此時AUC值越大,極端情況下為1。與F1-score不同的是,AUC值並不需要先設定一個閾值。ROC-AUC不僅可以用來評價模型優劣,通過分析ROC曲線得形狀特點還可以幫助分析模型,這在之后將專門寫一篇博客來說明。
6.PRC-AUC
PRC與ROC類似,包括曲線的繪制方式,不同的是PRC的橫軸是Recall,縱軸是Precision。一個PRC曲線的例子為
Recall越大、Precision越大表明模型效果越好,此時PRC曲線靠近右上角,AUC值也越大。與ROC-PRC不同的是,Precision受樣本不平衡的影響,相應的PRC也會因此形狀變化。因此,在樣本數據量比較大時,ROC會比較穩定,一般選擇ROC-AUC來評價模型是較為合適的。而當閾值確定時,Precision、Recall、F1-score都可以用來評價模型