最近一直在思考如何直觀理解auc,查了維基百科的以及網上的講解描述,感覺仍然很難把這個概念表述得通俗易懂,直到昨天周會後拿筆在紙上畫了畫,感覺似乎找到了一種比較有意思的理解方法,下面就請各位看官容我慢慢道來。首先簡單介紹一下什麼是auc。
根據維基百科的描述,auc(area under the curve of roc)是roc曲線下方的面積,是判斷二分類**模型優劣的標準。roc(receiver operating characteristic curve)接收者操作特徵曲線,是由二戰中的電子工程師和雷達工程師發明用來偵測戰場上敵軍載具(飛機、船艦)的指標,屬於訊號檢測理論。roc曲線的橫座標是偽陽性率(也叫假正類率,false positive rate),縱座標是真陽性率(真正類率,true positive rate),相應的還有真陰性率(真負類率,true negative rate)和偽陰性率(假負類率,false negative rate)。這四類的計算方法如下:
x軸與y軸的值域都是[0, 1],隨著判定正例的閾值不斷增加,我們可以得到一組(x, y)的點,相連便作出了roc曲線,示例圖如下:
圖中的虛線相當於隨機**的結果。不難看出,隨著fpr的上公升,roc曲線從原點(0, 0)出發,最終都會落到(1, 1)點。roc便是其右下方的曲線面積。下圖展現了三種auc的值:
auc對於每乙個做機器學習的人來說一定不陌生,它是衡量二分類模型優劣的一種評價指標,表示正例排在負例前面的概率。其他評價指標有精確度、準確率、召回率,而auc比這三者更為常用。因為一般在分類模型中,**結果都是以概率的形式表現,如果要計算準確率,通常都會手動設定乙個閾值來將對應的概率轉化成類別,這個閾值也就很大程度上影響了模型準確率的計算。我們不妨舉乙個極端的例子:乙個二類分類問題一共10個樣本,其中9個樣本為正例,1個樣本為負例,在全部判正的情況下準確率將高達90%,而這並不是我們希望的結果,尤其是在這個負例樣本得分還是最高的情況下,模型的效能本應極差,從準確率上看卻適得其反。而auc能很好描述模型整體效能的高低。這種情況下,模型的auc值將等於0(當然,通過取反可以解決小於50%的情況,不過這是另一回事了)。
那麼,如何理解這個roc的曲線面積auc的數學意義呢?
我想,既然是計算面積,能否像時間速度曲線一樣,套用積分計算路程的思路去理解呢?這個問題思考了許久,始終沒能把真陽性率與速度、偽陽性率與時間掛上鉤。眾所周知,時間速度曲線圖如下:
圖中陰影部分的面積便是路程,因為上圖x軸上的任意兩值相減得到的時間差是有直觀意義的。相比之下,roc中假陽性率相減則並沒有如此直觀的概念。roc圖從直觀上看能得出兩個結論:曲線點越接近右下角表示當前閾值**正例出錯的概率越高,準確性較低;曲線點越接近左上角則代表**正例出錯的概率越低,準確性較高。如下圖:
對比之後發現,時間速度曲線是連續的,而roc曲線是由一組離散的點組成,因為在一般情況下,分類的樣本空間有限。其點總數其實就是樣本總數,y軸最小步長為1/樣本正例數,x軸的最小步長則是1/樣本負例數。既然曲線點可列舉,那麼我們就可以多舉舉栗子。
現在假設有乙個訓練好的二分類器對10個正負樣本(正例5個,負例5個)**,得分按高到低排序得到的最好**結果為[1, 1, 1, 1, 1, 0, 0, 0, 0, 0],即5個正例均排在5個負例前面,正例排在負例前面的概率為100%。然後繪製其roc曲線,由於是10個樣本,除開原點我們需要描10個點,如下:
描點方式按照樣本**結果的得分高低從左至右開始遍歷。從原點開始,每遇到1便向y軸正方向移動y軸最小步長1個單位,這裡是1/5=0.2;每遇到0則向x軸正方向移動x軸最小步長1個單位,這裡也是0.2。不難看出,上圖的auc等於1,印證了正例排在負例前面的概率的確為100%。
我們不妨再舉個栗子,**結果序列為[1, 1, 1, 1, 0, 1, 0, 0, 0, 0]。
計算上圖的auc為0.96與計算正例與排在負例前面的概率0.8 × 1 + 0.2 × 0.8 = 0.96相等,而左上角陰影部分的面積則是負例排在正例前面的概率0.2 × 0.2 = 0.04。
再看個栗子,**結果序列為[1, 1, 1, 0, 1, 0, 1, 0, 0, 0]。
計算上圖的auc為0.88與計算正例與排在負例前面的概率0.6 × 1 + 0.2 × 0.8 + 0.2 × 0.6 = 0.88相等,左上角陰影部分的面積是負例排在正例前面的概率0.2 × 0.2 × 3 = 0.12。
至此,我們便可直觀理解roc曲線圖上面積的含義了,這相當於給定最小時間單位下分段遞增勻速運動時間速度曲線的路程積分問題。tpr相當於速度,每段「時間」的起始tpr越高,這段「時間」內正例排在負例前面的概率也就越大,而這個概率就是路程;fpr則相當於時間,這個可以這麼理解:每次旅行總會結束,而fpr也總會到達100%(x值為1),fpr每向x軸正方向移動一步,相當於離「旅行結束」又近了一步。這樣,乙個積分概率,乙個積分路程,大概就能近似理解了。
AUC直觀理解
相信這個問題很多玩家都已經明白了,簡單的概括一下,auc are under curve 是乙個模型的評價指標,用於分類任務。那麼這個指標代表什麼呢?這個指標想表達的含義,簡單來說其實就是隨機抽出一對樣本 乙個正樣本,乙個負樣本 然後用訓練得到的分類器來對這兩個樣本進行 得到正樣本的概率大於負樣本概...
推薦模型評價指標 AUC
推薦中常用的模型評價指標有準確率,召回率,f1 score和auc。1.什麼是auc auc指標是乙個 0,1 之間的實數,代表如果隨機挑選乙個正樣本和乙個負樣本,分類演算法將這個正樣本排在負樣本前面的概率。值越大,表示分類演算法更有可能將正樣本排在前面,也即演算法準確性越好。2.auc的計算方法 ...
ROC曲線及AUC評價指標
很多時候,我們希望對乙個二值分類器的效能進行評價,auc正是這樣一種用來度量分類模型好壞的乙個標準。現實中樣本在不同類別上的不均衡分布 class distribution imbalance problem 使得accuracy這樣的傳統的度量標準不能恰當的反應分類器的效能。舉個例子 測試樣本中有...