小白都能理解的ROC曲線與AUC值

1.ROC曲線

在信號檢測理論中,接收者操作特徵曲線(receiver operating characteristic curve,或者叫ROC曲線)是一種座標圖式的分析工具,用於 (1) 選擇最佳的信號偵測模型、捨棄次佳的模型。 (2) 在同一模型中設定最佳閾值。

在做決策時,ROC分析能不受成本/效益的影響,給出客觀中立的建議。

ROC曲線首先是由二戰中的電子工程師和雷達工程師發明的,用來偵測戰場上的敵軍載具(飛機、船艦),也就是信號檢測理論。之後很快就被引入了心理學來進行信號的知覺檢測。數十年來,ROC分析被用於醫學、無線電、生物學、犯罪心理學領域中,而且最近在機器學習(machine learning)和數據挖掘(data mining)領域也得到了很好的發展。(參考文獻1)

2.ROC曲線解釋

一個二分類問題,可以將實例分成正類(postive)或者負類(negative)。但是實際中分類時,會出現四種情況
1.某一個實例是正類,並且預測結果也爲正類,此爲真正類(True Positive, TP)
2.某一個實例是正類,被預測爲負類,此爲假負類(False Negative, FN)
3.某一個實例是負類,被預測爲正類,此爲假正類(False Positive, FP)
4.某一個實例爲負類,並且預測結果也爲負類,此爲真負類(True Negative, TN)

ROC曲線的縱座標是真正率(TPR)
TPR=TPTP+FNTPR = \frac{TP}{TP + FN}
用通俗的語言解釋就是預測的正例中,實際上也爲正的在所有正例中的佔比,這個比例自然是越大越好。
ROC曲線的橫座標是假正率(FPR)
FPR=FPFP+TNFPR = \frac{FP}{FP + TN}
用通俗的語言解釋就是預測的正例中,實際上爲負的在所有負例中的佔比。這個比例是越小越好。

很明顯,這兩個指標是互斥的,無法同時達到最優效果。
圖片來自wiki百科。

在這裏插入圖片描述

3.ROC曲線中的兩個特殊點

上面曲線中有兩個特殊點(0,0), (1,1)
其中(0,0)點表示TPR,FPR均爲0。此時閾值無爲無窮大,所有樣本被預測爲負類,TP = 0, FP = 0,樣本的預測結果只能是TN或者FN,所以TPR=FPR=0。
其中(1,1)點表示TPR, FPR均爲1。此時閾值爲0,所有樣本被與預測爲正類,樣本的預測結果只能爲TP或者FP,TN或者FN均爲0,所以TPR = TP / (TP + FN) = 1,FPR同樣爲1。

4.如何畫ROC曲線

假設已經得出一系列樣本被劃分爲正類的概率,然後按照大小排序,下圖是一個示例,圖中共有20個測試樣本,“Class”一欄表示每個測試樣本真正的標籤(p表示正樣本,n表示負樣本),“Score”表示每個測試樣本屬於正樣本的概率。
在這裏插入圖片描述
接下來,我們從高到低,依次將“Score”值作爲閾值threshold,當測試樣本屬於正樣本的概率大於或等於這個threshold時,我們認爲它爲正樣本,否則爲負樣本。舉例來說,對於圖中的第4個樣本,其“Score”值爲0.6,那麼樣本1,2,3,4都被認爲是正樣本,因爲它們的“Score”值都大於等於0.6,而其他樣本則都認爲是負樣本。每次選取一個不同的threshold,我們就可以得到一組FPR和TPR,即ROC曲線上的一點。這樣一來,我們一共得到了20組FPR和TPR的值,將它們畫在ROC曲線的結果如下圖:
在這裏插入圖片描述
(以上例子來自網絡)

5.AUC值的含義

AUC值指的是ROC曲線下的面積。AUC常常被用來作爲模型排序好壞的指標,原因在於AUC可以看做隨機從正負樣本中選取一對正負樣本,其中正樣本的得分大於負樣本的概率。所以,AUC常用在排序場景的模型評估,比如搜索和推薦等場景。

6.AUC的計算方法

在有M個正樣本,N個負樣本的數據集裏。一共有MN對樣本(一對樣本即,一個正樣本與一個負樣本)。統計這MN對樣本里,正樣本的預測概率大於負樣本的預測概率的個數。
I(P,P)MN\frac{\sum I(P_{正}, P_負)}{M*N}
其中,

I(P,P)={1P>P0.5P=P0P<P I(P_{正}, P_負)=\left\{ \begin{aligned} 1, P_正>P_負 \\ 0.5,P_正=P_負 \\ 0,P_正<P_負 \end{aligned} \right.

舉個例子來看:

index label pro
A 0 0.1
B 0 0.5
C 1 0.3
D 1 0.7

上面的例子有4個樣本,其中兩個爲正兩個爲負,則M*N=4,總共4個樣本對。
(D,B), (D,A), (C,B), (C,A)
其中,I(D,B)=I(D,A)=I(C,A)=1, I(C,B)=0
最後AUC的值爲(1+1+1+0)/4 = 0.75

參考文獻

1.https://zh.wikipedia.org/wiki/ROC%E6%9B%B2%E7%BA%BF

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章