PR曲線與ROC曲線都是機器學習中性能評估的重要指標,本文主要講這兩個曲線。
預備知識
- 熟悉基礎定義TP, FN, FP, TN。
- 理解主要評估指標概念機器學習-基礎知識 - Precision, Recall, Sensitivity, Specificity, Accuracy, FNR, FPR, TPR, TNR, F1 Score, Balanced F Score等。
示例數據
樣本編號 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
真實類別 |
P |
P |
P |
P |
P |
P |
N |
N |
N |
N |
預測-1
樣本編號 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
預測爲正樣本 的概率 |
0.9 |
0.8 |
0.7 |
0.6 |
0.6 |
0.4 |
0.5 |
0.4 |
0.3 |
0.2 |
預測-2
樣本編號 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
預測爲正樣本 的概率 |
0.8 |
0.7 |
0.7 |
0.8 |
0.7 |
0.4 |
0.6 |
0.3 |
0.3 |
0.1 |
PR曲線
含義:PR曲線中P爲Precision(查準率),R爲Recall(查全率)。以Recall爲橫座標、Precision爲縱座標繪製的曲線即爲PR曲線。有同學可能會問Precision、Recall不就是一個值麼,怎麼畫出的曲線?
曲線的由來
事實上機器學習訓練好的模型在對測試樣本進行預測的時候,輸出的原始結果是模型預測該樣本爲正樣本的概率,而不是我們平時經常聽到的Positive或Negative,而概率如何轉化爲機器學習的輸出靠的是一個閾值,當概率大於閾值則判斷其爲正樣本,反之爲負樣本。
而這個非常關鍵的閾值本身不是固定的,在閾值變化過程中模型對樣本的預測類別也會相應發生變化,那麼閾值不斷變化導致模型Precision和Recall變化,將這些點連成線也就是PR曲線了。
繪製示例數據的PR曲線
爲直觀展示PR曲線繪製過程,根據示例數據繪製PR曲線(簡便起見閾值選定爲0.05-0.95,跨度0.1)。
閾值 |
預測-1 |
預測-2 |
0.05 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
4 |
0 |
0 |
6 |
4 |
0 |
0 |
Precision |
0.6 |
Recall |
1 |
Precision |
0.6 |
Recall |
1 |
0.15 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
4 |
0 |
0 |
6 |
3 |
1 |
0 |
Precision |
0.6 |
Recall |
1 |
Precision |
0.67 |
Recall |
1 |
0.25 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
3 |
1 |
0 |
6 |
3 |
1 |
0 |
Precision |
0.67 |
Recall |
1 |
Precision |
0.67 |
Recall |
1 |
0.35 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
2 |
2 |
0 |
6 |
1 |
3 |
0 |
Precision |
0.75 |
Recall |
1 |
Precision |
0.86 |
Recall |
1 |
0.45 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
5 |
1 |
3 |
1 |
5 |
1 |
3 |
1 |
Precision |
0.83 |
Recall |
0.83 |
Precision |
0.83 |
Recall |
0.83 |
0.55 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
5 |
0 |
4 |
1 |
5 |
1 |
3 |
1 |
Precision |
1 |
Recall |
0.83 |
Precision |
0.83 |
Recall |
0.83 |
0.65 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
3 |
0 |
4 |
3 |
5 |
0 |
4 |
1 |
Precision |
1 |
Recall |
0.5 |
Precision |
1 |
Recall |
0.83 |
0.75 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
2 |
0 |
4 |
4 |
2 |
0 |
4 |
4 |
Precision |
1 |
Recall |
0.33 |
Precision |
1 |
Recall |
0.33 |
0.85 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
1 |
0 |
4 |
5 |
0 |
0 |
4 |
6 |
Precision |
1 |
Recall |
0.17 |
Precision |
- |
Recall |
0 |
0.95 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
0 |
0 |
4 |
6 |
0 |
0 |
4 |
6 |
Precision |
- |
Recall |
0 |
Precision |
- |
Recall |
0 |
結果座標
編號
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
|
預測-1 |
Recall |
1 |
1 |
1 |
1 |
0.83 |
0.83 |
0.5 |
0.33 |
0.17 |
0 |
Precision |
0.6 |
0.6 |
0.67 |
0.75 |
0.83 |
1 |
1 |
1 |
1 |
- |
預測-2 |
Recall |
1 |
1 |
1 |
1 |
0.83 |
0.83 |
0.83 |
0.33 |
0 |
0 |
Precision |
0.6 |
0.67 |
0.67 |
0.86 |
0.83 |
0.83 |
1 |
1 |
- |
- |
PR曲線:
-
如果一個學習器的P-R曲線被另一個學習器的P-R曲線完全包住,則可斷言後者的性能優於前者,示例數據中根據PR曲線可以看到預測2優於預測1
-
至於有交叉的情況可以判斷曲線下方的面積大小來判斷,面積大的性能更好
-
平衡點(BEP)是P=R時的取值,如果這個值較大,則說明學習器的性能較好
參考性能評估之PR曲線與ROC曲線。
ROC曲線
ROC曲線英文’receiver operating characteristic curve’,直譯爲“接受者操作特性曲線”,又稱爲感受性曲線(sensitivity curve)。得此名的原因在於曲線上各點反映着相同的感受性,它們都是對同一信號刺激的反應,只不過是在幾種不同的判定標準下所得的結果而已。
ROC曲線是在門限閾值不斷變化過程中以虛警概率(FPR)爲橫軸,擊中概率(TPR)爲縱軸繪製而成的曲線。
繪製示例數據的ROC曲線
爲直觀展示ROC曲線繪製過程,根據示例數據繪製ROC曲線(簡便起見閾值選定爲0.05-0.95,跨度0.1)。
閾值 |
預測-1 |
預測-2 |
0.05 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
4 |
0 |
0 |
6 |
4 |
0 |
0 |
FPR |
1 |
TPR |
1 |
FPR |
1 |
TPR |
1 |
0.15 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
4 |
0 |
0 |
6 |
3 |
1 |
0 |
FPR |
1 |
TPR |
1 |
FPR |
0.75 |
TPR |
1 |
0.25 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
3 |
1 |
0 |
6 |
3 |
1 |
0 |
FPR |
0.75 |
TPR |
1 |
FPR |
0.75 |
TPR |
1 |
0.35 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
6 |
2 |
2 |
0 |
6 |
1 |
3 |
0 |
FPR |
0.5 |
TPR |
1 |
FPR |
0.25 |
TPR |
1 |
0.45 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
5 |
1 |
3 |
1 |
5 |
1 |
3 |
1 |
FPR |
0.25 |
TPR |
0.83 |
FPR |
0.25 |
TPR |
0.83 |
0.55 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
5 |
0 |
4 |
1 |
5 |
1 |
3 |
1 |
FPR |
0 |
TPR |
0.83 |
FPR |
0.25 |
TPR |
0.83 |
0.65 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
3 |
0 |
4 |
3 |
5 |
0 |
4 |
1 |
FPR |
0 |
TPR |
0.5 |
FPR |
0 |
TPR |
0.83 |
0.75 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
2 |
0 |
4 |
4 |
2 |
0 |
4 |
4 |
FPR |
0 |
TPR |
0.33 |
FPR |
0 |
TPR |
0.33 |
0.85 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
1 |
0 |
4 |
5 |
0 |
0 |
4 |
6 |
FPR |
0 |
TPR |
0.17 |
FPR |
0 |
TPR |
0 |
0.95 |
TP |
FP |
TN |
FN |
TP |
FP |
TN |
FN |
0 |
0 |
4 |
6 |
0 |
0 |
4 |
6 |
FPR |
0 |
TPR |
0 |
FPR |
0 |
TPR |
0 |
結果座標
編號
| 1
| 2
| 3
| 4
| 5
| 6
| 7
| 8
| 9
| 10
|
預測-1 |
FPR |
1 |
1 |
0.75 |
0.5 |
0.25 |
0 |
0 |
0 |
0 |
0 |
TPR |
1 |
1 |
1 |
1 |
0.83 |
0.83 |
0.5 |
0.33 |
0.17 |
0 |
預測-2 |
FPR |
1 |
0.75 |
0.75 |
0.25 |
0.25 |
0.25 |
0 |
0 |
0 |
0 |
TPR |
1 |
1 |
1 |
1 |
0.83 |
0.83 |
0.83 |
0.33 |
0 |
0 |
ROC曲線:
ROC曲線圖中,座標(0,0)代表的含義是虛警概率爲0,既沒有負樣本被判定爲正樣本,同時召回率也爲0,既沒有正樣本被判定爲正樣本 —— 也就是此處表示所有樣本都判定爲了負樣本。這是由於閾值選擇接近1,導致沒有樣本被劃定到正樣本區域內,並不說明模型不好,事實上所有的模型都會經過這一點;
同理,座標(1,1)表示閾值接近0,所有樣本均被判定爲正;
座標(0,1)意味着完美的分類器,在虛警爲0的情況下正確判斷了所有正樣本,這也是我們機器學習人的畢生追求。因此ROC曲線越接近左上角,模型性能越好。
AUC
-
AUC是英文 Area under Curve的縮寫,表示的是ROC曲線下的面積,也就是ROC曲線在[0,1]上的積分
-
這是用來評價模型分類器性能的指標,對不同模型來說,AUC越大表示分類性能越好
-
AUC取值範圍爲[0,1],有效果的分類器會大於0.5,效果差的會接近0.5
-
如果有人問爲什麼不是接近0的效果最差呢? 事實上如果你得到了AUC爲0的分類器,只需要對輸出取反你就得到了完美的分類器。