對模型評價指標AUC的理解


AUC是一種衡量機器學習模型分類性能的重要且非常常用的指標,其只能用於二分類的情況.
AUC的本質含義反映的是對於任意一對正負例樣本,模型將正樣本預測為正例的可能性 大於 將負例預測為正例的可能性的 概率( :-) 沒辦法這句話就是這么繞, rap~).

AUC作為數值,那么到底是怎么來的?怎么理解它的意義?

在真正接觸AUC之前,還需要了解兩個概念, 分別是混淆矩陣(confusion matrix) 和 ROC曲線.


混淆矩陣:

混淆矩陣.png
可以看出混淆矩陣由四個值構成:

  • TP : 真實類別為1,且預測結果為1的樣本個數,預測正確.
  • FP : 真實類別為0,且預測結果為1的樣本個數,預測錯誤.
  • FN : 真實類別為1,且預測結果為0的樣本個數,預測錯誤.
  • TN : 真實類別為0,且預測結果為0的樣本個數,預測正確.

由混淆矩陣可以計算得到ROC曲線的關鍵參數:TPR(真正例率) 和 FPR(假正例率).

\[TPR = \frac{TP} {(TP + FN)} = \frac{TP}{P} \tag{1} \]

  • 對TPR最通俗易懂的理解即將正例預測為正例的比例

\[FPR = \frac{FP} {(FP + TN)} = \frac{FP}{N} \tag{2} \]

  • 對FPR最通俗易懂的理解即將負例預測為正例的比例(注意: TPR和FPR分子上表示的都是模型將樣本預測為正例的情況,不過一個是預測正確一個是預測錯誤)

理解到這個程度就可以接觸ROC曲線了
ROC curve

可以從圖上面看出,FPR和TPR分別是ROC曲線的橫坐標和縱坐標.對於ROC曲線有四個點需要單獨拎出來理解,這對理解AUC也是很有幫助的.它們分別是:

  • [0, 0] : FPR,TPR均為0.根據式(1)(2)可以得到即TP=FP=0,其含義為模型將所有樣本均預測為負例.
  • [0, 1] : FPR=0,TPR=1. 根據式(1)(2)可以得到即FP=FN=0,其含義為模型做出了沒有任何錯誤的完美預測(由此可以看出ROC曲線越是向上凸(貼近上邊界),曲線上的點的縱坐標(TPR)越是大,代表模型的性能越好).
  • [1, 0] : FPR =1,TPR=0.根據式(1)(2)可以得到即TP=TN=0,其含義為模型做出的預測全部錯誤(由此可以看出,ROC曲線越是貼近下邊界(下凹),那么模型的性能越是差).
  • [1, 1] : FPR =1,TPR=1.根據式(1)(2)可以得到即TN=FN=0,其意義為模型將所有樣本均預測為正例.

此外,對於圖ROC curve中的三根曲線的理解:

  • 黑線: 幾何含義即ROC圖的對角線, 數值含義即TPR = FPR,物理含義即對於任意抽取的樣本,模型將其中正例預測為正例的概率和將負例預測為正例的概率是相等的.這也就意味着和隨機分類的性能一樣.
  • 紅藍色線: 通常來講, 我們的機器學習模型要優於隨機分類器,因此我們經常看到的曲線往往都是像藍色線和紅色線一樣的ROC曲線.它們相比黑線是有明顯上凸的,同樣的橫坐標(FPR)下,紅藍線縱坐標(TPR)是大於黑線的,即代表模型將正例預測為正例的概率要大於將負例預測為正例的概率.同理可以看出藍線模型由於紅線模型.

如果要將上述的標准進行定量評估,就延伸得到了AUC, AUC即ROC曲線下方與坐標軸圍成的面積大小

AUC(Area under the ROC curve)

AUC更直觀地反應了ROC曲線向我們表達的模型分類能力.其數值大小(越大越好)代表了模型的性能優劣.說到這里,自然也就能夠明白開篇關於AUC物理意義的闡述了,重申一遍即:AUC的本質含義反映的是對於任意一對正負例樣本,模型將正樣本預測為正例的可能性 大於 將負例預測為正例的可能性的 概率(例如: 當AUC = 0.5, ROC曲線為黑線時, 模型將一對正負例樣本中的正樣本預測為正例的概率為0.5,將負樣本預測為正例的概率也為0.5,等效於隨機分類預測).

  • AUC = 1,代表完美分類器
  • 0.5 < AUC < 1,優於隨機分類器
  • 0 < AUC < 0.5,差於隨機分類器

如何繪制ROC曲線?
繪制曲線,必不可少的就是拿到曲線上的點,也就是需要get到每個點的TPR和FPR數值.
這里借用在知乎上看到的例子啦:

Case_1:
對於像SVM這樣的硬分類器,分類得到的結果都是已經標記完成的二分類數值(0/1).就長下面這個樣子:

由此很容易得到混淆矩陣Confusion Matrix:

Confusion Matrix
imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
已經拿到TP/FP/TN/FN,那么可以計算出TPR = 3/4, FPR = 2/4.從而可以繪制得到ROC曲線:

ROC_1

Case_2:
對於邏輯回歸LR, 還有常用的xgb, lgb而言,分類的預測結果都是一個分類概率值.比如長這個樣子:

這種情況,看起來就一臉懵逼,因為完全沒有預測好的標簽. 這個時候就需要我們先將預測結果進行排序,逐步調整分類的閾值, 依次將樣本划為正例,然后計算TPR和FPR的數值進行繪圖.

計算步驟:
threshold = 0.9, 即只有第一個樣本被划分為正例,此時TPR = 1/4, FPR = 0.
threshold = 0.8, 此時TPR = 2/4, FPR = 0.
threshold = 0.7, 此時TPR = 2/4, FPR = 1/4.
.
.
.
threshold = 0.1, 此時TPR = 1, FPR = 1.
最后繪圖即可.


說了這么多, 最后強調一下AUC作為評價指標的優勢:

由於AUC是與TPR核FPR密切相關的,而TPR和FPR分別從正例,負例的角度上去衡量了模型的分類能力(具有跟精准率和召回率一樣的能在樣本極端不平衡的情況下進行有效的衡量優勢),因此在樣本極端不平衡的情況下,AUC依然能夠做出合理的評價. :-)
All
AUC的計算方式:

  1. 最為直觀的方式當然是繪制出ROC曲線,然后計算出曲線下包繞的面積,面積值即AUC.
    2.直接計算:假設總共有(m+n)個樣本,其中正樣本m個,負樣本n個,總共有mn個樣本對,計數,正樣本預測為正樣本的概率值大於負樣本預測為正樣本的概率值記為1,累加計數,然后除以(mn)就是AUC的值


免責聲明!

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



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