學習筆記18 ROC曲線和AUC值

2021-08-22 10:19:19 字數 2999 閱讀 9980

比如有這樣乙個在房子周圍可能發現的動物型別的**,這個**的三類問題的混淆矩陣如下表所示:

乙個三類問題的混淆矩陣

利用混淆矩陣可以充分理解分類中的錯誤了。如果混淆矩陣中的非對角線元素均為0,就會得到乙個近乎完美的分類器。

在接下來的討論中,將以經典的二分類問題為例,對於多分類模擬推斷。

二分類問題在機器學習中是乙個很常見的問題,經常會用到。roc (receiver operating characteristic) 曲線和 auc (area under the curve) 值常被用來評價乙個二值分類器 (binary classifier) 的優劣。之前做醫學影象計算機輔助肺結節檢測時,在評定模型**結果時,就用到了roc和auc,這裡簡單介紹一下它們的特點,以及更為深入地,討論如何作出roc曲線圖和計算auc值。

針對乙個二分類問題,我們將例項分成正類(positive)和負類(negative)兩種。

例如:在肺結節計算機輔助識別這一問題上,一幅肺部ct影象中有肺結節被認為是陽性(positive),沒有肺結節被認為是陰性(negative)。對於部分有肺結節的示意圖如下:

常見肺結節示意圖

所以在實際檢測時,就會有如下四種情況:

(1) 真陽性(true positive,tp):檢測有結節,且實際有結節;正確肯定的匹配數目;

(2) 假陽性(false positive,fp):檢測有結節,但實際無結節;誤報,給出的匹配是不正確的;

(3) 真陰性(true negative,tn):檢測無結節,且實際無結節;正確拒絕的非匹配數目;

(4) 假陰性(false negative,fn):檢測無結節,但實際有結節;漏報,沒有正確找到的匹配的數目。

更多引數詳細資訊及其意義請參考 wikipedia -> [confusion_matrix](

上圖中涉及到很多相關概念及引數,詳細請見wiki上的定義及其混淆矩陣,這裡整理肺結節識別中的幾個主要引數指標如下:

roc曲線:接收者操作特徵曲線(receiver operating characteristic curve),是反映敏感性和特異性連續變數的綜合指標,roc曲線上每個點反映著對同一訊號刺激的感受性。

對於分類器,或者說分類演算法,評價指標主要有precision,recall,f-score等,以及這裡要討論的roc和auc。下圖是乙個roc曲線的示例:

在乙個二分類模型中,假設採用邏輯回歸分類器,其給出針對每個例項為正類的概率,那麼通過設定乙個閾值如0.6,概率大於等於0.6的為正類,小於0.6的為負類。對應的就可以算出一組(fpr,tpr),在平面中得到對應座標點。隨著閾值的逐漸減小,越來越多的例項被劃分為正類,但是這些正類中同樣也摻雜著真正的負例項,即tpr和fpr會同時增大。閾值最大時,對應座標點為(0,0),閾值最小時,對應座標點(1,1)。

如下面這幅圖,(a)圖中實線為roc曲線,線上每個點對應乙個閾值。

roc曲線和它相關的比率

(a) 理想情況下,tpr應該接近1,fpr應該接近0。roc曲線上的每乙個點對應於乙個threshold,對於乙個分類器,每個threshold下會有乙個tpr和fpr。比如threshold最大時,tp=fp=0,對應於原點;threshold最小時,tn=fn=0,對應於右上角的點(1,1)。

(b) p和n得分不作為特徵間距離d的乙個函式,隨著閾值theta增加,tp和fp都增加。

隨著閾值threshold調整,roc座標系裡的點如何移動可以參考:

auc值為roc曲線所覆蓋的區域面積,顯然,auc越大,分類器分類效果越好。

auc = 1,是完美分類器,採用這個**模型時,不管設定什麼閾值都能得出完美**。絕大多數**的場合,不存在完美分類器。

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

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

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

假設分類器的輸出是樣本屬於正類的socre(置信度),則auc的物理意義為,任取一對(正、負)樣本,正樣本的score大於負樣本的score的概率。

(1)第一種方法:auc為roc曲線下的面積,那我們直接計算面積可得。面積為乙個個小的梯形面積之和,計算的精度與閾值的精度有關。

(2)第二種方法:根據auc的物理意義,我們計算正樣本score大於負樣本的score的概率。取n*m(n為正樣本數,m為負樣本數)個二元組,比較score,最後得到auc。時間複雜度為o(n*m)。

(3)第三種方法:與第二種方法相似,直接計算正樣本score大於負樣本的score的概率。我們首先把所有樣本按照score排序,依次用rank表示他們,如最大score的樣本,rank=n(n=n+m),其次為n-1。那麼對於正樣本中rank最大的樣本(rank_max),有m-1個其他正樣本比他score小,那麼就有(rank_max-1)-(m-1)個負樣本比他score小。其次為(rank_second-1)-(m-2)。最後我們得到正樣本大於負樣本的概率為:

時間複雜度為o(n+m)。

參考:

ROC曲線和AUC面積

本博文所有理論都是基於二分類,多分類問題其實與二分類問題相通。考慮乙個二分問題,如果一類定為正類 positive 那麼另一類就是負類 negative 注意和正樣本和負樣本概念不同,參考博文 真正類 true positive 例項是正類並且也被 成正類 假正類 false positive 例項...

ROC曲線和AUC指標

roc曲線的橫軸就是fprate,縱軸就是tprate,二者相等時表示的意義則是 對於不論真實類別是1還是0的樣本,分類器 為1的概率是相等的,此時auc為0.5 圖中藍色的線則是roc曲線,roc曲線和橫軸 縱軸圍成的面積就是auc指標。fpr fp fp tn from sklearn.metr...

瞎聊機器學習 PR曲線 ROC曲線 AUC

roc曲線經常作為評估二分類的重要指標,其起源於軍事領域,全稱叫做receiver operating characteristic curve。roc曲線是二維平面內的曲線,其橫座標為假陽性率 fpr 縱座標為真陽性率 tpr 他們的計算方法如下 上式中 舉個例子 假設有10個人疑似感冒了,其中有...