1. 程式人生 > 其它 >全面瞭解ROC曲線

全面瞭解ROC曲線

轉自:https://www.plob.org/article/12476.html

初識ROC曲線

1. ROC的前世今生

ROC的全稱是“受試者工作特徵”(Receiver Operating Characteristic)曲線,首先是由二戰中的電子工程師和雷達工程師發明的,用來偵測戰場上的敵軍載具(飛機、船艦),也就是訊號檢測理論。之後很快就被引入了心理學來進行訊號的知覺檢測。此後被引入機器學習領域,用來評判分類、檢測結果的好壞。因此,ROC曲線是非常重要和常見的統計分析方法。

2.“ROC曲線”思路:

根據學習器的預測結果對樣例進行排序,按此順序逐個把樣本作為正例(閾值)進行預測,每次計算出兩個重要量的值(TPR、FPR),分別以它們為橫、縱座標作圖。

3.AUC(Area under Curve):

ROC曲線下的面積,通常介於0.5和1之間,作為數值可以直觀的評價分類器的好壞,值越大越好。

4.“混淆矩陣”:

對於二分類問題,可將樣本根據其真實類別與學習器預測類別的組合劃分為TP(true positive)、FP(false positive)、TN(true negative)、FN(false negative)四種情況,TP+FP+TN+FN=樣本總數。

http://zhwhong.ml/2017/04/14/ROC-AUC-Precision-Recall-analysis/

(1)真陽性(True Positive,TP):檢測不健康,且實際不健康;正確肯定的匹配數目;

(2)假陽性(False Positive,FP):檢測不健康,但實際健康;誤報,給出的匹配是不正確的;

(3)真陰性(True Negative,TN):檢測健康,且實際健康;正確拒絕的非匹配數目;

(4)假陰性(False Negative,FN):檢測健康,但實際不健康;漏報,沒有正確找到的匹配的數目。

深入瞭解ROC曲線

ROC曲線其實是多個混淆矩陣的結果組合。

以疾病檢測為例,這是一個有監督的二分類模型,模型對每個樣本的預測結果為一個概率值,我們需要從中選取一個閾值來判斷健康與否。

定好一個閾值之後,超過此閾值定義為不健康,低於此閾值定義為健康,就可以得出混淆矩陣。

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

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

AUC值作為評價標準

1.AUC (Area Under Curve)

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

2.AUC 的計算方法

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

(1)梯形法則:早期由於測試樣本有限,我們得到的AUC曲線呈階梯狀。曲線上的每個點向X軸做垂線,得到若干梯形,這些梯形面積之和也就是AUC。

(2)Mann-Whitney統計量: 統計正負樣本對中,有多少個組中的正樣本的概率大於負樣本的概率。這種估計隨著樣本規模的擴大而逐漸逼近真實值。

引數法:

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

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

·AUC = 1,是完美分類器,採用這個預測模型時,存在至少一個閾值能得出完美預測。絕大多數預測的場合,不存在完美分類器。

·0.5 < AUC < 1,優於隨機猜測。這個分類器(模型)妥善設定閾值的話,能有預測價值。

·AUC = 0.5,跟隨機猜測一樣(例:丟銅板),模型沒有預測價值。

·AUC < 0.5,比隨機猜測還差;但只要總是反預測而行,就優於隨機猜測。

三種AUC值示例:

總結:AUC值越大的分類器,正確率越高

4. 不同模型AUC的比較

總的來說,AUC值越大,模型的分類效果越好,疾病檢測越準確;不過兩個模型AUC值相等並不代表模型效果相同,例子如下:

下圖中有三條ROC曲線,A模型比B和C都要好

下面兩幅圖中兩條ROC曲線相交於一點,AUC值幾乎一樣:當需要高Sensitivity時,模型A比B好;當需要高Speciticity時,模型B比A好;

最優臨界點怎麼找

說人話,就是保證TPR高的同時FPR要儘量的小,建立max(TPR+(1-FPR))的模型。同樣有三種方法:找到離(0,1)最近的點、Youden index和最小損耗(costcriterion)

1.如果說Sn和Sp 分別對應於sensitivity和specificity,所有ROC曲線上的點到ROC的距離可以表示為,讓d最小就好啦;

2.Youdenindex: 最大化ROC曲線上的點到x軸的垂直距離(最大化TPR(Sn)和FPR(1-Sp)的差異);

3.考慮人力物力和財力(第三種方法很少用,因為很難評估)

ROC的好基友——PR曲線

1.介紹

PR曲線和ROC曲線類似,ROC曲線是FPR和TPR的點連成的線,PR曲線是準確率和召回率的點連成的線,如下圖所示。

我們又知道,Recall=TPR,因此PRC的橫座標為ROC的縱座標。

2. ROC曲線與PR曲線的取捨

相對來講ROC曲線會穩定很多,在正負樣本量都足夠的情況下,ROC曲線足夠反映模型的判斷能力。因此,對於同一模型,PRC和ROC曲線都可以說明一定的問題,而且二者有一定的相關性,如果想評測模型效果,也可以把兩條曲線都畫出來綜合評價。對於有監督的二分類問題,在正負樣本都足夠的情況下,可以直接用ROC曲線、AUC、KS評價模型效果。在確定閾值過程中,可以根據Precision、Recall或者F1來評價模型的分類效果。對於多分類問題,可以對每一類分別計算Precision、Recall和F1,綜合作為模型評價指標。

在上圖中,(a)和(c)為ROC曲線,(b)和(d)為Precision-Recall曲線。(a)和(b)展示的是分類其在原始測試集(正負樣本分佈平衡)的結果,(c)和(d)是將測試集中負樣本的數量增加到原來的10倍後,分類器的結果。可以明顯的看出,ROC曲線基本保持原貌,而Precision-Recall曲線則變化較大。

參考資料

https://en.wikipedia.org/wiki/Receiver_operating_characteristic

https://www.zhihu.com/question/30643044

http://www.it610.com/article/4964856.htm

http://zhwhong.ml/2017/04/14/ROC-AUC-Precision-Recall-analysis/

http://www.medicalbiostatistics.com/

快去成為你想要的樣子!