分類模型評價指標


一、模型評價的意義

在完成模型構建之后,必須對模型的效果進行評估,根據評估結果來繼續調整模型的參數、特征或者算法,以達到滿意的結果。

評價一個模型最簡單也是最常用的指標就是准確率,但是在沒有任何前提下使用准確率作為評價指標,准確率往往不能反映一個模型性能的好壞,例如在不平衡的數據集上,正類樣本占總數的95%,負類樣本占總數的5%;

那么有一個模型把所有樣本全部判斷為正類,該模型也能達到95%的准確率,但是這個模型沒有任何的意義。

因此,對於一個模型,我們需要從不同的方面去判斷它的性能。在對比不同模型的能力時,使用不同的性能度量往往會導致不同的評價結果;

這意味着模型的好壞是相對的,什么樣的模型是好的,不僅取決於算法和數據,還決定於任務需求。例如醫院中檢測病人是否有心臟病的模型,那么這個模型的目標是將所有有病的人給檢測出來,及時會有許多的誤診(將沒病檢測為有病);

在警察追捕罪犯的模型上,該模型的目標是將罪犯准確的識別出來,而不希望有過多的誤判(將正常人認為是罪犯)。所以不同的任務需求,模型的訓練目標不同,因此評價模型性能的指標也會有所差異。

二、分類模型評價指標

下面以二分類為例,對分類模型中的常用指標進行說明與總結

2-1、混淆矩陣(Confusion Matrix)

混淆矩陣是能夠比較全面的反映模型的性能,從混淆矩陣能夠衍生出很多的指標來。

 

             表2.1 二分類結果混淆矩陣

真實情況 預測結果
正例  反例
正例 TP(真正例) FN(假反例)
反例 FP(假正例) TN(真反例)

 

 

 

 

其中:TP:真正例,實際為正預測為正;FP:假正例,實際為負但預測為正;FN:假反例,實際為正但預測為負;TN:真反例,實際為負預測為負

查准率(精准率):Precision = TP / (TP+FP);

查全率(召回率):Recall = TP / (TP+FN);

正確率(准確率):Accuracy = (TP+TN) / (TP+FP+TN+FN) 

F值(F1-scores):Precision和Recall加權調和平均數,並假設兩者一樣重要。

   F1-score = (2Recall*Precision) / (Recall + Precision)

查准率和查全率是一對矛盾的度量。一般來說,查准率高時,查全率往往偏低;而查全率高時,查准率往往偏低。通常只有在一些簡單任務中,才可能使二者都很高。

2-2、PR曲線

P-R曲線的P就是查准率(Precision),R就是查全率(Recall)。以P作為橫坐標,R作為縱坐標,就可以畫出P-R曲線。

對於同一個模型,通過調整分類閾值,可以得到不同的P-R值,從而可以得到一條曲線(縱坐標為P,橫坐標為R)。通常隨着分類閾值從大到小變化(大於閾值認為P),Precision減小,Recall增加。比較兩個分類器好壞時,顯然是查得又准又全的比較好,也就是的PR曲線越往坐標(1,1)的位置靠近越好。若一個學習器的P-R曲線被另一個學習器完全”包住”,則后者的性能優於前者。當存在交叉時,可以計算曲線圍住面積,不太容易判斷,但是可以通過平衡點(查准率=查全率,Break-Even Point,BEP)來判斷。

下圖中,基於BEP的比較,可以認為模型A優於模型B。

 

2-3、ROC曲線和AUC

AUC(Area Under the ROC Curve)指標是在二分類問題中,模型評估階段常被用作最重要的評估指標來衡量模型的穩定性。

根據混淆矩陣,我們可以得到另外兩個指標:

真正例率,True Positive Rate:TPR = TP/ (TP+FN)

假正例率, False Postive Rate:FPR = FP/(TN+FP)

另外,真正率是正確預測到的正例數與實際正例數的比值,所以又稱為靈敏度(敏感性,sensitive);

對應於靈敏度有一個特異度(特效性,specificity)是正確預測到的負例數與實際負例數的比值(NPV = TN / (TN+FN))。

 

我們以真正例率(TPR)作為縱軸,以假正例率(FPR)作為橫軸作圖,便得到了ROC曲線,而AUC則是ROC曲線下的面積。AUC的取值為[0.5-1],0.5對應於對角線的“隨機猜測模型”。

AUC值是一個概率值,當你隨機挑選一個正樣本以及負樣本,當前的分類算法根據計算得到的Score值將這個正樣本排在負樣本前面的概率就是AUC值,AUC值越大,當前分類算法越有可能將正樣本排在負樣本前面,從而能夠更好地分類。例如一個模型的AUC是0.7,其含義可以理解為:給定一個正樣本和一個負樣本,在70%的情況下,模型對正樣本的打分(概率)高於對負樣本的打分。

那么為什么要用AUC作為二分類模型的評價指標呢?為什么不直接通過計算准確率來對模型進行評價呢?

因為機器學習中的很多模型對於分類問題的預測結果大多是概率,即屬於某個類別的概率,如果計算准確率的話,就要把概率轉化為類別,這就需要設定一個閾值,概率大於某個閾值的屬於一類,概率小於某個閾值的屬於另一類,而閾值的設定直接影響了准確率的計算。也就是說AUC越高說明閾值分割所能達到的准確率越高。

2-4、PR曲線與ROC曲線對比

與PR曲線相比,相對來講ROC曲線會更穩定,在正負樣本量都足夠的情況下,ROC曲線足夠反映模型的判斷能力。而在正負樣本分布得極不均勻(highly skewed datasets)的情況下(正樣本極少),PRC比ROC能更有效地反映分類器對於整體分類情況的好壞。

總之,只畫一個曲線時,如果沒有data imbalance,傾向於用ROC(更簡潔,更好理解)。如果數據樣本不均衡,分兩種情況:

情況1:如正樣本遠小於負樣本,PRC更敏感,因為用到了precision=(TP/(TP+FP))。

情況2:正樣本遠大於負樣本,PRC和ROC差別不大,都不敏感。

對於同一模型,PRC和ROC曲線都可以說明一定的問題,而且二者有一定的相關性,如果想評測模型效果,也可以把兩條曲線都畫出來綜合評價。

2-5、KS曲線

KS曲線又叫洛倫茲曲線。以TPR和FPR分別作為縱軸,以閾值作為橫軸,畫出兩條曲線。KS曲線則是兩條曲線的在每一個閾值下的差值。

KS(Kolmogorov-Smirnov)值,KS=max(TPR-FPR),即為TPR與FPR的差的最大值;

KS值可以反映模型的最優區分效果,此時所取的閾值一般作為定義好壞用戶的最優閾值。KS值越大,模型的預測准確性越好。KS值的取值范圍是[0,1] ,一般,KS>0.2即可認為模型有比較好的預測准確性。

KS<0.2:模型無鑒別能力;

0.2-0.4之間,模型勉強接受;

0.41-0.5之間,模型具有區別能力;

0.51-0.6之間,模型有很好的區別能力;

0.61-0.75之間,模型有非常好的區別能力;

KS>0.75,模型異常,很有可能有問題。

 

由於KS值能找出模型中差異最大的一個分段,因此適合用於找閾值(cut_off),像評分卡這種就很適合用KS值來評估。但是KS值只能反映出哪個分段是區分最大的,而不能總體反映出所有分段的效果,因果AUC值更能勝任。 一般如果是如果任務更關注負樣本,那么區分度肯定就很重要,此時K-S比AUC更合適用作模型評估,如果沒什么特別的影響,那么就用AUC。

參考文獻:

[1].評價指標總結

[2].模型評估:K-S值和AUC的區別

[3].機器學習模型相關評價指標最全總結

[4].如何評估一個機器學習模型

[5].筆記︱風控分類模型種類(決策、排序)比較與模型評估體系(ROC/gini/KS/lift)

[6].周志華. 機器學習[M]. Qing hua da xue chu ban she, 2016.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM