導(dǎo)語最近一直在思考如何直觀理解AUC,查了維基百科的以及網(wǎng)上的講解描述,,感覺仍然很難把這個概念表述得通俗易懂,,直到昨天周會后拿筆在紙上畫了畫,感覺似乎找到了一種比較有意思的理解方法,,下面就請各位看官容我慢慢道來,。首先簡單介紹一下什么是AUC。 根據(jù)維基百科的描述,,AUC(Area under the Curve of ROC)是ROC曲線下方的面積,,是判斷二分類預(yù)測模型優(yōu)劣的標(biāo)準(zhǔn)。ROC(receiver operating characteristic curve)接收者操作特征曲線,,是由二戰(zhàn)中的電子工程師和雷達(dá)工程師發(fā)明用來偵測戰(zhàn)場上敵軍載具(飛機,、船艦)的指標(biāo),屬于信號檢測理論,。ROC曲線的橫坐標(biāo)是偽陽性率(也叫假正類率,,F(xiàn)alse Positive Rate),縱坐標(biāo)是真陽性率(真正類率,,True Positive Rate),,相應(yīng)的還有真陰性率(真負(fù)類率,True Negative Rate)和偽陰性率(假負(fù)類率,,F(xiàn)alse Negative Rate),。這四類的計算方法如下:
x軸與y軸的值域都是[0, 1],隨著判定正例的閾值不斷增加,,我們可以得到一組(x, y)的點,,相連便作出了ROC曲線,,示例圖如下: 圖中的虛線相當(dāng)于隨機預(yù)測的結(jié)果。不難看出,,隨著FPR的上升,,ROC曲線從原點(0, 0)出發(fā),最終都會落到(1, 1)點,。ROC便是其右下方的曲線面積,。下圖展現(xiàn)了三種AUC的值: AUC對于每一個做機器學(xué)習(xí)的人來說一定不陌生,它是衡量二分類模型優(yōu)劣的一種評價指標(biāo),,表示正例排在負(fù)例前面的概率,。其他評價指標(biāo)有精確度、準(zhǔn)確率,、召回率,,而AUC比這三者更為常用。因為一般在分類模型中,,預(yù)測結(jié)果都是以概率的形式表現(xiàn),,如果要計算準(zhǔn)確率,通常都會手動設(shè)置一個閾值來將對應(yīng)的概率轉(zhuǎn)化成類別,,這個閾值也就很大程度上影響了模型準(zhǔn)確率的計算,。我們不妨舉一個極端的例子:一個二類分類問題一共10個樣本,其中9個樣本為正例,,1個樣本為負(fù)例,,在全部判正的情況下準(zhǔn)確率將高達(dá)90%,而這并不是我們希望的結(jié)果,,尤其是在這個負(fù)例樣本得分還是最高的情況下,,模型的性能本應(yīng)極差,從準(zhǔn)確率上看卻適得其反,。而AUC能很好描述模型整體性能的高低,。這種情況下,模型的AUC值將等于0(當(dāng)然,,通過取反可以解決小于50%的情況,,不過這是另一回事了)。 那么,,如何理解這個ROC的曲線面積AUC的數(shù)學(xué)意義呢,? 優(yōu)雅理解法我想,既然是計算面積,,能否像時間速度曲線一樣,,套用積分計算路程的思路去理解呢?這個問題思考了許久,,始終沒能把真陽性率與速度,、偽陽性率與時間掛上鉤,。眾所周知,時間速度曲線圖如下: 圖中陰影部分的面積便是路程,,因為上圖x軸上的任意兩值相減得到的時間差是有直觀意義的,。相比之下,ROC中假陽性率相減則并沒有如此直觀的概念,。ROC圖從直觀上看能得出兩個結(jié)論:曲線點越接近右下角表示當(dāng)前閾值預(yù)測正例出錯的概率越高,準(zhǔn)確性較低,;曲線點越接近左上角則代表預(yù)測正例出錯的概率越低,,準(zhǔn)確性較高。如下圖: 對比之后發(fā)現(xiàn),,時間速度曲線是連續(xù)的,,而ROC曲線是由一組離散的點組成,因為在一般情況下,,分類的樣本空間有限,。其點總數(shù)其實就是樣本總數(shù),y軸最小步長為1/樣本正例數(shù),,x軸的最小步長則是1/樣本負(fù)例數(shù),。既然曲線點可枚舉,那么我們就可以多舉舉栗子,。 現(xiàn)在假設(shè)有一個訓(xùn)練好的二分類器對10個正負(fù)樣本(正例5個,,負(fù)例5個)預(yù)測,得分按高到低排序得到的最好預(yù)測結(jié)果為[1, 1, 1, 1, 1, 0, 0, 0, 0, 0],,即5個正例均排在5個負(fù)例前面,,正例排在負(fù)例前面的概率為100%。然后繪制其ROC曲線,,由于是10個樣本,,除開原點我們需要描10個點,如下: 描點方式按照樣本預(yù)測結(jié)果的得分高低從左至右開始遍歷,。從原點開始,,每遇到1便向y軸正方向移動y軸最小步長1個單位,這里是1/5=0.2,;每遇到0則向x軸正方向移動x軸最小步長1個單位,,這里也是0.2。不難看出,,上圖的AUC等于1,,印證了正例排在負(fù)例前面的概率的確為100%。 我們不妨再舉個栗子,,預(yù)測結(jié)果序列為[1, 1, 1, 1, 0, 1, 0, 0, 0, 0],。 計算上圖的AUC為0.96與計算正例與排在負(fù)例前面的概率0.8 × 1 + 0.2 × 0.8 = 0.96相等,,而左上角陰影部分的面積則是負(fù)例排在正例前面的概率0.2 × 0.2 = 0.04。 再看個栗子,,預(yù)測結(jié)果序列為[1, 1, 1, 0, 1, 0, 1, 0, 0, 0],。 計算上圖的AUC為0.88與計算正例與排在負(fù)例前面的概率0.6 × 1 + 0.2 × 0.8 + 0.2 × 0.6 = 0.88相等,左上角陰影部分的面積是負(fù)例排在正例前面的概率0.2 × 0.2 × 3 = 0.12,。 結(jié)語至此,,我們便可直觀理解ROC曲線圖上面積的含義了,這相當(dāng)于給定最小時間單位下分段遞增勻速運動時間速度曲線的路程積分問題,。TPR相當(dāng)于速度,,每段“時間”的起始TPR越高,這段“時間”內(nèi)正例排在負(fù)例前面的概率也就越大,,而這個概率就是路程,;FPR則相當(dāng)于時間,這個可以這么理解:每次旅行總會結(jié)束,,而FPR也總會到達(dá)100%(x值為1),,F(xiàn)PR每向x軸正方向移動一步,相當(dāng)于離“旅行結(jié)束”又近了一步,。這樣,,一個積分概率,一個積分路程,,大概就能近似理解了,。 |
|