機(jī)器學(xué)習(xí)之分類性能度量指標(biāo) : ROC曲線、AUC值、正確率、召回率


在分類任務(wù)中,人們總是喜歡基于錯(cuò)誤率來衡量分類器任務(wù)的成功程度。錯(cuò)誤率指的是在所有測(cè)試樣例中錯(cuò)分的樣例比例。實(shí)際上,這樣的度量錯(cuò)誤掩蓋了樣例如何被分錯(cuò)的事實(shí)。在機(jī)器學(xué)習(xí)中,有一個(gè)普遍適用的稱為混淆矩陣(confusion matrix)的工具,它可以幫助人們更好地了解分類中的錯(cuò)誤。

比如有這樣一個(gè)在房子周圍可能發(fā)現(xiàn)的動(dòng)物類型的預(yù)測(cè),這個(gè)預(yù)測(cè)的三類問題的混淆矩陣如下表所示:

一個(gè)三類問題的混淆矩陣

利用混淆矩陣可以充分理解分類中的錯(cuò)誤了。如果混淆矩陣中的非對(duì)角線元素均為0,就會(huì)得到一個(gè)近乎完美的分類器。

在接下來的討論中,將以經(jīng)典的二分類問題為例,對(duì)于多分類類比推斷。

二分類問題在機(jī)器學(xué)習(xí)中是一個(gè)很常見的問題,經(jīng)常會(huì)用到。ROC (Receiver Operating Characteristic) 曲線和 AUC (Area Under the Curve) 值常被用來評(píng)價(jià)一個(gè)二值分類器 (binary classifier) 的優(yōu)劣。之前做醫(yī)學(xué)圖像計(jì)算機(jī)輔助肺結(jié)節(jié)檢測(cè)時(shí),在評(píng)定模型預(yù)測(cè)結(jié)果時(shí),就用到了ROC和AUC,這里簡單介紹一下它們的特點(diǎn),以及更為深入地,討論如何作出ROC曲線圖和計(jì)算AUC值。

一、醫(yī)學(xué)圖像識(shí)別二分類問題

針對(duì)一個(gè)二分類問題,我們將實(shí)例分成正類(positive)和負(fù)類(negative)兩種。

例如:在肺結(jié)節(jié)計(jì)算機(jī)輔助識(shí)別這一問題上,一幅肺部CT圖像中有肺結(jié)節(jié)被認(rèn)為是陽性(positive),沒有肺結(jié)節(jié)被認(rèn)為是陰性(negative)。對(duì)于部分有肺結(jié)節(jié)的示意圖如下:

常見肺結(jié)節(jié)示意圖

所以在實(shí)際檢測(cè)時(shí),就會(huì)有如下四種情況:

(1) 真陽性(True Positive,TP):檢測(cè)有結(jié)節(jié),且實(shí)際有結(jié)節(jié);正確肯定的匹配數(shù)目;
(2) 假陽性(False Positive,F(xiàn)P):檢測(cè)有結(jié)節(jié),但實(shí)際無結(jié)節(jié);誤報(bào),給出的匹配是不正確的;
(3) 真陰性(True Negative,TN):檢測(cè)無結(jié)節(jié),且實(shí)際無結(jié)節(jié);正確拒絕的非匹配數(shù)目;
(4) 假陰性(False Negative,F(xiàn)N):檢測(cè)無結(jié)節(jié),但實(shí)際有結(jié)節(jié);漏報(bào),沒有正確找到的匹配的數(shù)目。

詳細(xì)圖解(原創(chuàng),轉(zhuǎn)載請(qǐng)標(biāo)明出處)如下:

上圖中涉及到很多相關(guān)概念及參數(shù),詳細(xì)請(qǐng)見Wiki上的定義及其混淆矩陣,這里整理肺結(jié)節(jié)識(shí)別中的幾個(gè)主要參數(shù)指標(biāo)如下:

  • 真陰性率(True Negative Rate,TNR),特異度(Specificity):
  • 假陰性率(False Negatice Rate,FNR),漏診率( = 1 - 靈敏度):
  • 假陽性率(False Positice Rate,FPR),誤診率( = 1 - 特異度):

二、ROC曲線

ROC曲線:接收者操作特征曲線(receiver operating characteristic curve),是反映敏感性和特異性連續(xù)變量的綜合指標(biāo),roc曲線上每個(gè)點(diǎn)反映著對(duì)同一信號(hào)刺激的感受性。

對(duì)于分類器,或者說分類算法,評(píng)價(jià)指標(biāo)主要有precision,recall,F(xiàn)-score等,以及這里要討論的ROC和AUC。下圖是一個(gè)ROC曲線的示例:

  • 橫坐標(biāo):1-Specificity,偽正類率(False positive rate, FPR),預(yù)測(cè)為正但實(shí)際為負(fù)的樣本占所有負(fù)例樣本的比例;
  • 縱坐標(biāo):Sensitivity,真正類率(True positive rate, TPR),預(yù)測(cè)為正且實(shí)際為正的樣本占所有正例樣本的比例。

在一個(gè)二分類模型中,假設(shè)采用邏輯回歸分類器,其給出針對(duì)每個(gè)實(shí)例為正類的概率,那么通過設(shè)定一個(gè)閾值如0.6,概率大于等于0.6的為正類,小于0.6的為負(fù)類。對(duì)應(yīng)的就可以算出一組(FPR,TPR),在平面中得到對(duì)應(yīng)坐標(biāo)點(diǎn)。隨著閾值的逐漸減小,越來越多的實(shí)例被劃分為正類,但是這些正類中同樣也摻雜著真正的負(fù)實(shí)例,即TPR和FPR會(huì)同時(shí)增大。閾值最大時(shí),對(duì)應(yīng)坐標(biāo)點(diǎn)為(0,0),閾值最小時(shí),對(duì)應(yīng)坐標(biāo)點(diǎn)(1,1)。

如下面這幅圖,(a)圖中實(shí)線為ROC曲線,線上每個(gè)點(diǎn)對(duì)應(yīng)一個(gè)閾值。

ROC曲線和它相關(guān)的比率

(a) 理想情況下,TPR應(yīng)該接近1,F(xiàn)PR應(yīng)該接近0。ROC曲線上的每一個(gè)點(diǎn)對(duì)應(yīng)于一個(gè)threshold,對(duì)于一個(gè)分類器,每個(gè)threshold下會(huì)有一個(gè)TPR和FPR。比如Threshold最大時(shí),TP=FP=0,對(duì)應(yīng)于原點(diǎn);Threshold最小時(shí),TN=FN=1,對(duì)應(yīng)于右上角的點(diǎn)(1,1)。
(b) P和N得分不作為特征間距離d的一個(gè)函數(shù),隨著閾值theta增加,TP和FP都增加。

  • 橫軸FPR:1-TNR,1-Specificity,F(xiàn)PR越大,預(yù)測(cè)正類中實(shí)際負(fù)類越多。
  • 縱軸TPR:Sensitivity(正類覆蓋率),TPR越大,預(yù)測(cè)正類中實(shí)際正類越多。
  • 理想目標(biāo):TPR=1,F(xiàn)PR=0,即圖中(0,1)點(diǎn),故ROC曲線越靠攏(0,1)點(diǎn),越偏離45度對(duì)角線越好,Sensitivity、Specificity越大效果越好。

隨著閾值threshold調(diào)整,ROC坐標(biāo)系里的點(diǎn)如何移動(dòng)可以參考:

三、如何畫ROC曲線

對(duì)于一個(gè)特定的分類器和測(cè)試數(shù)據(jù)集,顯然只能得到一個(gè)分類結(jié)果,即一組FPR和TPR結(jié)果,而要得到一個(gè)曲線,我們實(shí)際上需要一系列FPR和TPR的值,這又是如何得到的呢?我們先來看一下Wikipedia上對(duì)ROC曲線的定義

In signal detection theory, a receiver operating characteristic (ROC), or simply ROC curve, is a graphical plot which illustrates the performance of a binary classifier system as its discrimination threshold is varied.

問題在于“as its discrimination threashold is varied”。如何理解這里的“discrimination threashold”呢?我們忽略了分類器的一個(gè)重要功能“概率輸出”,即表示分類器認(rèn)為某個(gè)樣本具有多大的概率屬于正樣本(或負(fù)樣本)。通過更深入地了解各個(gè)分類器的內(nèi)部機(jī)理,我們總能想辦法得到一種概率輸出。通常來說,是將一個(gè)實(shí)數(shù)范圍通過某個(gè)變換映射到(0,1)區(qū)間。

假如我們已經(jīng)得到了所有樣本的概率輸出(屬于正樣本的概率),現(xiàn)在的問題是如何改變“discrimination threashold”?我們根據(jù)每個(gè)測(cè)試樣本屬于正樣本的概率值從大到小排序。下圖是一個(gè)示例,圖中共有20個(gè)測(cè)試樣本,“Class”一欄表示每個(gè)測(cè)試樣本真正的標(biāo)簽(p表示正樣本,n表示負(fù)樣本),“Score”表示每個(gè)測(cè)試樣本屬于正樣本的概率。

接下來,我們從高到低,依次將“Score”值作為閾值threshold,當(dāng)測(cè)試樣本屬于正樣本的概率大于或等于這個(gè)threshold時(shí),我們認(rèn)為它為正樣本,否則為負(fù)樣本。舉例來說,對(duì)于圖中的第4個(gè)樣本,其“Score”值為0.6,那么樣本1,2,3,4都被認(rèn)為是正樣本,因?yàn)樗鼈兊摹癝core”值都大于等于0.6,而其他樣本則都認(rèn)為是負(fù)樣本。每次選取一個(gè)不同的threshold,我們就可以得到一組FPR和TPR,即ROC曲線上的一點(diǎn)。這樣一來,我們一共得到了20組FPR和TPR的值,將它們畫在ROC曲線的結(jié)果如下圖:

當(dāng)我們將threshold設(shè)置為1和0時(shí),分別可以得到ROC曲線上的(0,0)和(1,1)兩個(gè)點(diǎn)。將這些(FPR,TPR)對(duì)連接起來,就得到了ROC曲線。當(dāng)threshold取值越多,ROC曲線越平滑。

其實(shí),我們并不一定要得到每個(gè)測(cè)試樣本是正樣本的概率值,只要得到這個(gè)分類器對(duì)該測(cè)試樣本的“評(píng)分值”即可(評(píng)分值并不一定在(0,1)區(qū)間)。評(píng)分越高,表示分類器越肯定地認(rèn)為這個(gè)測(cè)試樣本是正樣本,而且同時(shí)使用各個(gè)評(píng)分值作為threshold。我認(rèn)為將評(píng)分值轉(zhuǎn)化為概率更易于理解一些。

四、AUC

AUC值的計(jì)算

AUC (Area Under Curve) 被定義為ROC曲線下的面積,顯然這個(gè)面積的數(shù)值不會(huì)大于1。又由于ROC曲線一般都處于y=x這條直線的上方,所以AUC的取值范圍一般在0.5和1之間。使用AUC值作為評(píng)價(jià)標(biāo)準(zhǔn)是因?yàn)楹芏鄷r(shí)候ROC曲線并不能清晰的說明哪個(gè)分類器的效果更好,而作為一個(gè)數(shù)值,對(duì)應(yīng)AUC更大的分類器效果更好。

AUC的計(jì)算有兩種方式,梯形法和ROC AUCH法,都是以逼近法求近似值,具體見wikipedia。

AUC意味著什么

那么AUC值的含義是什么呢?根據(jù)(Fawcett, 2006),AUC的值的含義是:

The AUC value is equivalent to the probability that a randomly chosen positive example is ranked higher than a randomly chosen negative example.

這句話有些繞,我嘗試解釋一下:首先AUC值是一個(gè)概率值,當(dāng)你隨機(jī)挑選一個(gè)正樣本以及一個(gè)負(fù)樣本,當(dāng)前的分類算法根據(jù)計(jì)算得到的Score值將這個(gè)正樣本排在負(fù)樣本前面的概率就是AUC值。當(dāng)然,AUC值越大,當(dāng)前的分類算法越有可能將正樣本排在負(fù)樣本前面,即能夠更好的分類。

從AUC判斷分類器(預(yù)測(cè)模型)優(yōu)劣的標(biāo)準(zhǔn):

  • AUC = 1,是完美分類器,采用這個(gè)預(yù)測(cè)模型時(shí),存在至少一個(gè)閾值能得出完美預(yù)測(cè)。絕大多數(shù)預(yù)測(cè)的場(chǎng)合,不存在完美分類器。
  • 0.5 < AUC < 1,優(yōu)于隨機(jī)猜測(cè)。這個(gè)分類器(模型)妥善設(shè)定閾值的話,能有預(yù)測(cè)價(jià)值。
  • AUC = 0.5,跟隨機(jī)猜測(cè)一樣(例:丟銅板),模型沒有預(yù)測(cè)價(jià)值。
  • AUC < 0.5,比隨機(jī)猜測(cè)還差;但只要總是反預(yù)測(cè)而行,就優(yōu)于隨機(jī)猜測(cè)。

三種AUC值示例:

簡單說:AUC值越大的分類器,正確率越高。

為什么使用ROC曲線

既然已經(jīng)這么多評(píng)價(jià)標(biāo)準(zhǔn),為什么還要使用ROC和AUC呢?因?yàn)镽OC曲線有個(gè)很好的特性:當(dāng)測(cè)試集中的正負(fù)樣本的分布變化的時(shí)候,ROC曲線能夠保持不變。在實(shí)際的數(shù)據(jù)集中經(jīng)常會(huì)出現(xiàn)類不平衡(class imbalance)現(xiàn)象,即負(fù)樣本比正樣本多很多(或者相反),而且測(cè)試數(shù)據(jù)中的正負(fù)樣本的分布也可能隨著時(shí)間變化。下圖是ROC曲線和Precision-Recall曲線的對(duì)比:

在上圖中,(a)和(c)為ROC曲線,(b)和(d)為Precision-Recall曲線。(a)和(b)展示的是分類其在原始測(cè)試集(正負(fù)樣本分布平衡)的結(jié)果,(c)和(d)是將測(cè)試集中負(fù)樣本的數(shù)量增加到原來的10倍后,分類器的結(jié)果??梢悦黠@的看出,ROC曲線基本保持原貌,而Precision-Recall曲線則變化較大。

Reference

(在此對(duì)以上博文的博主表示感謝!)


(注:感謝您的閱讀,希望本文對(duì)您有所幫助。如果覺得不錯(cuò)歡迎分享轉(zhuǎn)載,但請(qǐng)先點(diǎn)擊 這里 獲取授權(quán)。本文由 版權(quán)印 提供保護(hù),禁止任何形式的未授權(quán)違規(guī)轉(zhuǎn)載,謝謝!)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容