假設有一個分類器,並且該分類器可以得到將一個樣本預測爲正的概率,並將此概率稱爲這個樣本的得分。
首先說一下AUC的含義:隨機給定一個正樣本和一個負樣本,用一個分類器進行分類和預測,該正樣本的得分比該負樣本的得分要大的概率。
那麼應該如何理解這個含義呢?首先我們要知道ROC曲線是怎麼畫出來的。而AUC即ROC曲線下面的面積。
(圖源:https://www.zhihu.com/question/39840928)
從這個矩陣中我們引入了真陽率(True Positive Rate, TPR)以及假陽率(False Positive Rate, FPR)的概念:
仔細看這兩個公式,發現其實TPR就是TP除以TP所在的列,FPR就是FP除以FP所在的列,二者意義如下:
假設我們有如下幾個數據,其中p表示真實的正樣本,n表示真實的負樣本,得分爲某一分類器將此樣本預測爲正樣本的概率。我們將其按照得分由大到小排序,並將正負樣本按照得分從小到大分別編號。
我們還需要一個概念:閾值。我們設定這個閾值,並將得分小於等於這個閾值的所有樣本預測爲負,大於這個閾值的樣本預測爲正。
我們建立TPR和FPR的座標。最開始,我們令這個閾值爲0,則所有的樣本都被預測爲正,此時TPR和FPR都是1,則我們在圖像上(1,1)這個地方描一個點。之後,我們按照所有樣本的得分從小到大依次將其設置爲閾值,即下一次閾值設置爲0.2,此時只有樣本n1被預測爲負,其他樣本均被預測爲正,此時的TPR還是1,而FPR則變爲了0.75,我們在(0.75,1)的地方描一個點。下一次閾值設置爲0.35,此時樣本p1和n1被預測爲負,其餘樣本被預測爲正,此時TPR變爲0.8,FPR仍爲0.75,我們在(0.75,0.8)的地方描一個點。以此類推,直到最後將所有樣本都預測爲負,畫出ROC曲線。
注:下面的說明不是嚴格的證明,只是幫助通俗理解。
那麼,應該怎麼將AUC的值與概率聯繫起來呢?首先,我們知道整個區域的面積是1。假設正樣本的數量爲
,負樣本數量爲
,並且在改變閾值的過程中,每當一個樣本從被預測爲正,變爲被預測爲負,則:
由於每讓一個樣本的預測結果發生變化,都畫出了一條線段,因此讓每個樣本對應一條線段,負樣本對應上方水平的線段,正樣本對應右側垂直的線段。於是可以將整個區域劃分爲
個小區域,每個區域可以由一條垂直的線段和一條水平的線段通過平移組成,那麼這個區域就可以代表這兩條線段對應的一個正樣本和一個負樣本組成的樣本對,如下圖。
那麼我們來理解一下圖中黃色區域代表什麼?這個黃色部分代表的其實是所有得分比n2的得分高的正樣本與n2組成的樣本對。也就是說黃色的部分由4個小塊組成,每個小塊是一個樣本對,在這個樣本對中,正樣本的得分比負樣本得分高。
所以,我們可以得到結論,ROC曲線下面的所有小塊代表的樣本對都是正樣本得分比負樣本得分高的樣本對。而我們也可以證明ROC上面的所有小塊代表的樣本對都是正樣本得分比負樣本得分低的樣本對。
現在,你能否理解AUC的含義了呢:隨機給定一個正樣本和一個負樣本,用一個分類器進行分類和預測,該正樣本的得分比該負樣本的得分要大的概率。 而根據這一含義,我們也可以確定,AUC越大(越接近1),模型的分類效果越好。