分類模型嘗試將各個執行個體(instance)劃歸到某個特定的類,而分類模型的結果一般是實數值,如羅吉斯迴歸,其結果是從0到1的實數值。這裡就涉及到如何確定閾值(threshold value),使得模型結果大於這個值,劃為一類,小於這個值,劃歸為另一類。
考慮一個二分問題,即將執行個體分成正類(positive)或負類(negative)。對一個二分問題來說,會出現四種情況。如果一個執行個體是正類並且也被預測成正類,即為真正類(True positive),如果執行個體是負類被預測成正類,稱之為假正類(False positive)。相應地,如果執行個體是負類被預測成負類,稱之為真負類(True positive),正類被預測成負類則為假負類(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。
在一個二分類模型中,對於所得到的連續結果,假設已確定一個閥值,比如說0.6,大於這個值的執行個體劃歸為正類,小於這個值則划到負類中。如果減小閥值,減到0.5,固然能識別出更多的正類,也就是提高了識別出的正例占所有正例的比類,即TPR,但同時也將更多的負執行個體當作了正執行個體,即提高了FPR。為了形象化這一變化,在此引入ROC。
Receiver Operating Characteristic,翻譯為"接受者操作特性曲線",夠拗口的。曲線是由兩個變數的組合,1-specificity和Sensitivity. 由於1-specificity=FPR,即負正類率。Sensitivity即是真正類率,True positive rate,反映了正類覆蓋程度。這個組合以1-specificity對sensitivity,即是以代價(costs)對收益(benefits)。
下表是一個羅吉斯迴歸得到的結果。將得到的實數值按大到小劃分成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曲線如下
對角線反映的是隨機播放的結果,此對角線作為對照線。到底該怎樣選擇閥值呢,這涉及到了AUC(Area Under the ROC Curve,ROC曲線下的面積)。