分類評價指標:ROC曲線和PR曲線詳解

1. 什麼是ROC曲線

接受者操作特性曲線(receiver operating characteristic curve,簡稱ROC曲線),又稱爲感受性曲線(sensitivity curve)。接受者操作特性曲線就是以虛驚概率爲橫軸,擊中概率爲縱軸所組成的座標圖。因此,ROC曲線越靠近座標的左上角越好。
ROC曲線

2.混淆矩陣

對於一個二分類問題,它有四種情況:
如果一個實例是正類,它被分爲正類,記爲 真正(True Positive);
如果一個實例是正類,它被分爲負類,記爲 假負(False Negative);
如果一個實例是負類,它被分爲正類,記爲 假正(False Positive);
如果一個實例是負類,它被分爲負類,記爲 真負(True Negative)。

在表格中可以表示爲:

真實1 真實0
預測1 TP FP
預測0 FN TN

TP:正確肯定的數目;
FN:漏報,沒有正確找到的匹配的數目;
FP:誤報,給出的匹配是不正確的;
TN:正確拒絕的非匹配對數;

由此我沒可以引入兩個新名詞:
真正類率(True Positive Rate, TPR),表示分類器所識別出的 正實例佔所有正類的比例,計算公式爲:
TPR=TPTP+FNTPR = \frac{TP}{TP+FN}
另一個是假正類率(False Positive Rate, FPR),表示分類器錯認爲正類的負實例佔所有負類的比例,計算公式爲:
FPR=FPFP+TNFPR=\frac{FP}{FP+TN}
還有一個真負類率(True Negative Rate, TNR),表示分類器正確識別所有負類所佔全部負類的比例,計算公式爲:
TNR=TNFP+TN=1FPRTNR = \frac{TN}{FP+TN}=1-FPR

3. ROC曲線如何得到

疾病預測

以疾病檢測爲例,這是一個有監督的二分類模型,模型對每個樣本的預測結果爲一個概率值,我們需要從中選取一個閾值來判斷健康與否。
定好一個閾值之後,超過此閾值定義爲患病,低於此閾值定義爲健康,就可以得出混淆矩陣。如果我沒將閾值減少0.1,真正類率(TPR)將會增高,相應的假正類率(FPR)也會提高,爲了形象化這一變化,在此引入ROC,ROC曲線可以用於評價一個分類器。
[圖片上傳失敗…(image-acef2b-1591253838567)]
ROC曲線上的每一個點對應於一個threshold,對於一個分類器,每個threshold下會有一個TPR和FPR。
比如Threshold最大時,TP=FP=0,對應於原點;Threshold最小時,TN=FN=0,對應於右上角的點(1,1)。
隨着閾值theta增加,TP和FP都減小,TPR和FPR也減小,ROC點向左下移動。

而如果在上述模型中我們沒有定好閾值,而是將模型預測結果從高到低排序,將每次概率值依次作爲閾值,那麼就可以得到多個混淆矩陣。對於每個混淆矩陣,我們計算兩個指標TPR和FPR,以FPR爲x軸,TPR爲y軸畫圖,就得到了ROC曲線。

一般來說,如果ROC是光滑的,那麼基本可以判斷沒有太大的overfitting,AUC面積越大一般認爲模型越好。

4.AUC作爲評價標準

AUC(Area Under Curve)被定義爲ROC曲線下的面積,取值範圍一般在0.5和1之間(當AUC=0.5時,)。使用AUC值作爲評價標準是因爲很多時候ROC曲線並不能清晰的說明哪個分類器的效果更好,而作爲一個數值,對應AUC更大的分類器效果更好。、

(1) AUC的計算方法

非參數法:(兩種方法實際證明是一致的)

  • 梯形法則:早期由於測試樣本有限,我們得到的AUC曲線呈階梯狀。曲線上的每個點向X軸做垂線,得到若干梯形,這些梯形面積之和也就是AUC 。
  • Mann-Whitney統計量: 統計正負樣本對中,有多少個組中的正樣本的概率大於負樣本的概率。這種估計隨着樣本規模的擴大而逐漸逼近真實值。

參數法:

  • 主要適用於二項分佈的數據,即正反樣本分佈符合正態分佈,可以通過均值和方差來計算。

(2)從AUC判斷分類器(預測模型)優劣的標準

  • AUC = 1,是完美分類器,採用這個預測模型時,存在至少一個閾值能得出完美預測。絕大多數預測的場合,不存在完美分類器。
  • 0.5 < AUC < 1,優於隨機猜測。這個分類器(模型)妥善設定閾值的話,能有預測價值。
  • AUC = 0.5,跟隨機猜測一樣(例:丟銅板),模型沒有預測價值。
  • AUC < 0.5,比隨機猜測還差;但只要總是反預測而行,就優於隨機猜測。

三種AUC曲線

(3)不同模型AUC比較
總的來說,AUC值越大,模型的分類效果越好;不過兩個模型AUC值相等並不代表模型效果相同,例子如下:

下圖中有三條ROC曲線,A模型比B和C都要好
image
下面兩幅圖中兩條ROC曲線相交於一點,AUC值幾乎一樣:當需要高Sensitivity(TPR)時,模型A比B好;當需要高Speciticity(FPR)時,模型B比A好;
image.png

(4)最優臨界點的找法
我們希望自己的模型TPR高的同時FPR要儘量的小,則需要建立max(TPR+(1-FPR))的模型。
有三種方法:找到離(0,1)最近的點Youden index最小損耗(cost criterion)
image

  • 如果說Sn 和Sp 分別對應於sensitivity和specificity,所有ROC曲線上的點到ROC的距離可以表示爲,讓d最小就好啦;
  • Youden index : 最大化ROC曲線上的點到x軸的垂直距離(最大化TPR(Sn)和FPR(1-Sp)的差異)
  • 考慮人力物力和財力(第三種方法很少用,因爲很難評估)

5. PR曲線

PR(Precision-Recall)曲線和ROC曲線類似,ROC曲線是FPR和TPR的點連成的線,PR曲線是準確率和召回率的點連成的線,如下圖所示。
[圖片上傳失敗…(image-ddf201-1591253838567)]

真實1 真實0
預測1 TP FP
預測0 FN TN

精確率和召回率的計算公式爲:
精確率(Precision)
全部預測爲1中實際標籤爲1的比率:
precision=TPTP+FPprecision = \frac{TP}{TP+FP}

召回率(Recall)
實際標籤爲1中正確預測爲1的比率:
rechall=TPTP+FNrechall = \frac{TP}{TP+FN}
而Recall=TPR,因此PR的橫座標爲ROC的縱座標。

6.ROC曲線和PR曲線

相對來講ROC曲線會穩定很多,在正負樣本量都足夠的情況下,ROC曲線足夠反映模型的判斷能力。因此,對於同一模型,PR和ROC曲線都可以說明一定的問題,而且二者有一定的相關性,如果想評測模型效果,也可以把兩條曲線都畫出來綜合評價。對於有監督的二分類問題,在正負樣本都足夠的情況下,可以直接用ROC曲線、AUC、KS評價模型效果。在確定閾值過程中,可以根據Precision、Recall或者F1來評價模型的分類效果。對於多分類問題,可以對每一類分別計算Precision、Recall和F1,綜合作爲模型評價指標。
image
在上圖中,(a)和©爲ROC曲線,(b)和(d)爲Precision-Recall曲線。(a)和(b)展示的是分類其在原始測試集(正負樣本分佈平衡)的結果,©和(d)是將測試集中負樣本的數量增加到原來的10倍後,分類器的結果。可以明顯的看出,ROC曲線基本保持原貌,而Precision-Recall曲線則變化較大。

參考
全面瞭解ROC曲線
接受者操作特徵曲線
ROC曲線詳解
機器學習算法中的準確率、精確率、召回率和F值

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