1. 程式人生 > >ROC曲線

ROC曲線

理想 pan title 收益 技術 如果 cost edi 兩個

ROC曲線指受試者工作特征曲線 / 接收器操作特性曲線(receiver operating characteristic curve), 是反映敏感性和特異性連續變量的綜合指標,是用構圖法揭示敏感性和特異性的相互關系,它通過將連續變量設定出多個不同的臨界值,從而計算出一系列敏感性和特異性,再以敏感性為縱坐標、(1-特異性)為橫坐標繪制成曲線,曲線下面積越大,診斷準確性越高。在ROC曲線上,最靠近坐標圖左上方的點為敏感性和特異性均較高的臨界值。

ROC曲線的例子

  考慮一個二分問題,即將實例分成正類(positive)或負類(negative)。對一個二分問題來說,會出現四種情況。如果一個實例是正類並且也被 預測成正類,即為真正類(True positive),如果實例是負類被預測成正類,稱之為假正類(False positive)。相應地,如果實例是負類被預測成負類,稱之為真負類(True negative),正類被預測成負類則為假負類(false negative)。

  列聯表如下表所示,1代表正類,0代表負類。

  

預測
1 0 合計
實際 1 True Positive(TP) False Negative(FN) Actual Positive(TP+FN)
0 False Positive(FP) True Negative(TN) Actual Negative(FP+TN)
合計 Predicted Positive(TP+FP) Predicted Negative(FN+TN) TP+FP+FN+TN

從列聯表引入兩個新名詞。其一是真正類率(true positive rate ,TPR), 計算公式為TPR=TP/ (TP+ FN),刻畫的是分類器所識別出的 正實例占所有正實例的比例。另外一個是假正類率(false positive rate, FPR),計算公式為FPR= FP / (FP + TN),計算的是分類器錯認為正類的負實例占所有負實例的比例。還有一個真負類率(True Negative Rate,TNR),也稱為specificity,計算公式為TNR=TN/ (FP+ TN) = 1-FPR。

技術分享

其中,兩列True matches和True non-match分別代表應該匹配上和不應該匹配上的

兩行Pred matches和Pred non-match分別代表預測匹配上和預測不匹配上的

FPR = FP/(FP + TN) 負樣本中的錯判率(假警報率)

TPR = TP/(TP + FN) 判對樣本中的正樣本率(命中率)

ACC = (TP + TN) / (P+N) 判對準確率

  在一個二分類模型中,對於所得到的連續結果,假設已確定一個閥值,比如說 0.6,大於這個值的實例劃歸為正類,小於這個值則劃到負類中。如果減小閥值,減到0.5,固然能識別出更多的正類,也就是提高了識別出的正例占所有正例 的比類,即TPR,但同時也將更多的負實例當作了正實例,即提高了FPR。為了形象化這一變化,在此引入ROC,ROC曲線可以用於評價一個分類器。

技術分享

ROC曲線和它相關的比率

(a)理想情況下,TPR應該接近1,FPR應該接近0。

ROC曲線上的每一個點對應於一個threshold,對於一個分類器,每個threshold下會有一個TPR和FPR。

比如Threshold最大時,TP=FP=0,對應於原點;Threshold最小時,TN=FN=0,對應於右上角的點(1,1)

(b)隨著閾值theta增加,TP和FP都減小,TPR和FPR也減小,ROC點向左下移動;

  Receiver Operating Characteristic,翻譯為"接受者操作特性曲線",夠拗口的。曲線由兩個變量1-specificity 和 Sensitivity繪制. 1-specificity=FPR,即假正類率。Sensitivity即是真正類率,TPR(True positive rate),反映了正類覆蓋程度。這個組合以1-specificity對sensitivity,即是以代價(costs)對收益(benefits)。

此外,ROC曲線還可以用來計算“均值平均精度”(mean average precision),這是當你通過改變閾值來選擇最好的結果時所得到的平均精度(PPV).

  下表是一個邏輯回歸得到的結果。將得到的實數值按大到小劃分成10個個數 相同的部分。

  

Percentile 實例數 正例數 1-特異度(%) 敏感度(%)
10 6180 4879 2.73 34.64
20 6180 2804 9.80 54.55
30 6180 2165 18.22 69.92
40 6180 1506 28.01 80.62
50 6180 987 38.90 87.62
60 6180 529 50.74 91.38
70 6180 365 62.93 93.97
80 6180 294 75.26 96.06
90 6180 297 87.59 98.17
100 6177 258 100.00 100.00

其正例數為此部分裏實際的正類數。也就是說,將邏輯回歸得到的結 果按從大到小排列,倘若以前10%的數值作為閥值,即將前10%的實例都劃歸為正類,6180個。其中,正確的個數為4879個,占所有正類的 4879/14084*100%=34.64%,即敏感度;另外,有6180-4879=1301個負實例被錯劃為正類,占所有負類的1301 /47713*100%=2.73%,即1-特異度。以這兩組值分別作為x值和y值,在excel中作散點圖。

ROC曲線