機器學習之分類性能度量指標 : ROC曲線甫恩、AUC值逆济、正確率、召回率


在分類任務中磺箕,人們總是喜歡基于錯誤率來衡量分類器任務的成功程度奖慌。錯誤率指的是在所有測試樣例中錯分的樣例比例。實際上松靡,這樣的度量錯誤掩蓋了樣例如何被分錯的事實简僧。在機器學習中,有一個普遍適用的稱為混淆矩陣(confusion matrix)的工具雕欺,它可以幫助人們更好地了解分類中的錯誤岛马。

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

一個三類問題的混淆矩陣

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

在接下來的討論中笛洛,將以經典的二分類問題為例夏志,對于多分類類比推斷。

二分類問題在機器學習中是一個很常見的問題苛让,經常會用到盲镶。ROC (Receiver Operating Characteristic) 曲線和 AUC (Area Under the Curve) 值常被用來評價一個二值分類器 (binary classifier) 的優(yōu)劣。之前做醫(yī)學圖像計算機輔助肺結節(jié)檢測時蝌诡,在評定模型預測結果時,就用到了ROC和AUC枫吧,這里簡單介紹一下它們的特點浦旱,以及更為深入地,討論如何作出ROC曲線圖和計算AUC值九杂。

一颁湖、醫(yī)學圖像識別二分類問題

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

例如:在肺結節(jié)計算機輔助識別這一問題上甥捺,一幅肺部CT圖像中有肺結節(jié)被認為是陽性(positive),沒有肺結節(jié)被認為是陰性(negative)镀层。對于部分有肺結節(jié)的示意圖如下:

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

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

(1) 真陽性(True Positive,TP):檢測有結節(jié),且實際有結節(jié)吴侦;正確肯定的匹配數(shù)目屋休;
(2) 假陽性(False Positive,F(xiàn)P):檢測有結節(jié)备韧,但實際無結節(jié)劫樟;誤報,給出的匹配是不正確的织堂;
(3) 真陰性(True Negative叠艳,TN):檢測無結節(jié),且實際無結節(jié)易阳;正確拒絕的非匹配數(shù)目附较;
(4) 假陰性(False Negative,F(xiàn)N):檢測無結節(jié)闽烙,但實際有結節(jié)翅睛;漏報,沒有正確找到的匹配的數(shù)目黑竞。

詳細圖解(原創(chuàng)捕发,轉載請標明出處)如下:

上圖中涉及到很多相關概念及參數(shù),詳細請見Wiki上的定義及其混淆矩陣很魂,這里整理肺結節(jié)識別中的幾個主要參數(shù)指標如下:

  • 真陽性率(True Positive Rate扎酷,TPR),靈敏度(Sensitivity)遏匆,召回率(Recall):
  • 真陰性率(True Negative Rate法挨,TNR),特異度(Specificity):
  • 假陰性率(False Negatice Rate幅聘,FNR)凡纳,漏診率( = 1 - 靈敏度):
  • 假陽性率(False Positice Rate,FPR)帝蒿,誤診率( = 1 - 特異度):

二荐糜、ROC曲線

ROC曲線:接收者操作特征曲線(receiver operating characteristic curve),是反映敏感性和特異性連續(xù)變量的綜合指標葛超,roc曲線上每個點反映著對同一信號刺激的感受性暴氏。

對于分類器,或者說分類算法绣张,評價指標主要有precision答渔,recall,F(xiàn)-score等侥涵,以及這里要討論的ROC和AUC沼撕。下圖是一個ROC曲線的示例:

  • 橫坐標:1-Specificity宋雏,偽正類率(False positive rate, FPR)端朵,預測為正但實際為負的樣本占所有負例樣本的比例好芭;
  • 縱坐標:Sensitivity,真正類率(True positive rate冲呢, TPR)舍败,預測為正且實際為正的樣本占所有正例樣本的比例。

在一個二分類模型中敬拓,假設采用邏輯回歸分類器邻薯,其給出針對每個實例為正類的概率,那么通過設定一個閾值如0.6乘凸,概率大于等于0.6的為正類厕诡,小于0.6的為負類。對應的就可以算出一組(FPR,TPR)营勤,在平面中得到對應坐標點灵嫌。隨著閾值的逐漸減小,越來越多的實例被劃分為正類葛作,但是這些正類中同樣也摻雜著真正的負實例寿羞,即TPR和FPR會同時增大。閾值最大時赂蠢,對應坐標點為(0,0)绪穆,閾值最小時,對應坐標點(1,1)虱岂。

如下面這幅圖玖院,(a)圖中實線為ROC曲線,線上每個點對應一個閾值第岖。

ROC曲線和它相關的比率

(a) 理想情況下难菌,TPR應該接近1,F(xiàn)PR應該接近0蔑滓。ROC曲線上的每一個點對應于一個threshold郊酒,對于一個分類器,每個threshold下會有一個TPR和FPR烫饼。比如Threshold最大時,TP=FP=0试读,對應于原點杠纵;Threshold最小時,TN=FN=1钩骇,對應于右上角的點(1,1)比藻。
(b) P和N得分不作為特征間距離d的一個函數(shù)铝量,隨著閾值theta增加,TP和FP都增加银亲。

  • 橫軸FPR:1-TNR慢叨,1-Specificity,F(xiàn)PR越大务蝠,預測正類中實際負類越多拍谐。
  • 縱軸TPR:Sensitivity(正類覆蓋率),TPR越大馏段,預測正類中實際正類越多轩拨。
  • 理想目標:TPR=1,F(xiàn)PR=0院喜,即圖中(0,1)點亡蓉,故ROC曲線越靠攏(0,1)點,越偏離45度對角線越好喷舀,Sensitivity砍濒、Specificity越大效果越好。

隨著閾值threshold調整硫麻,ROC坐標系里的點如何移動可以參考:

三爸邢、如何畫ROC曲線

對于一個特定的分類器和測試數(shù)據(jù)集,顯然只能得到一個分類結果庶香,即一組FPR和TPR結果甲棍,而要得到一個曲線,我們實際上需要一系列FPR和TPR的值赶掖,這又是如何得到的呢感猛?我們先來看一下Wikipedia上對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”呢奢赂?我們忽略了分類器的一個重要功能“概率輸出”陪白,即表示分類器認為某個樣本具有多大的概率屬于正樣本(或負樣本)。通過更深入地了解各個分類器的內部機理膳灶,我們總能想辦法得到一種概率輸出咱士。通常來說,是將一個實數(shù)范圍通過某個變換映射到(0,1)區(qū)間轧钓。

假如我們已經得到了所有樣本的概率輸出(屬于正樣本的概率)序厉,現(xiàn)在的問題是如何改變“discrimination threashold”?我們根據(jù)每個測試樣本屬于正樣本的概率值從大到小排序毕箍。下圖是一個示例弛房,圖中共有20個測試樣本,“Class”一欄表示每個測試樣本真正的標簽(p表示正樣本而柑,n表示負樣本)文捶,“Score”表示每個測試樣本屬于正樣本的概率荷逞。

接下來,我們從高到低粹排,依次將“Score”值作為閾值threshold种远,當測試樣本屬于正樣本的概率大于或等于這個threshold時,我們認為它為正樣本顽耳,否則為負樣本坠敷。舉例來說,對于圖中的第4個樣本斧抱,其“Score”值為0.6常拓,那么樣本1,2辉浦,3弄抬,4都被認為是正樣本,因為它們的“Score”值都大于等于0.6宪郊,而其他樣本則都認為是負樣本掂恕。每次選取一個不同的threshold,我們就可以得到一組FPR和TPR弛槐,即ROC曲線上的一點懊亡。這樣一來,我們一共得到了20組FPR和TPR的值乎串,將它們畫在ROC曲線的結果如下圖:

當我們將threshold設置為1和0時店枣,分別可以得到ROC曲線上的(0,0)和(1,1)兩個點。將這些(FPR,TPR)對連接起來叹誉,就得到了ROC曲線鸯两。當threshold取值越多,ROC曲線越平滑长豁。

其實钧唐,我們并不一定要得到每個測試樣本是正樣本的概率值,只要得到這個分類器對該測試樣本的“評分值”即可(評分值并不一定在(0,1)區(qū)間)匠襟。評分越高钝侠,表示分類器越肯定地認為這個測試樣本是正樣本,而且同時使用各個評分值作為threshold酸舍。我認為將評分值轉化為概率更易于理解一些帅韧。

四、AUC

AUC值的計算

AUC (Area Under Curve) 被定義為ROC曲線下的面積啃勉,顯然這個面積的數(shù)值不會大于1忽舟。又由于ROC曲線一般都處于y=x這條直線的上方,所以AUC的取值范圍一般在0.5和1之間。使用AUC值作為評價標準是因為很多時候ROC曲線并不能清晰的說明哪個分類器的效果更好萧诫,而作為一個數(shù)值,對應AUC更大的分類器效果更好枝嘶。

AUC的計算有兩種方式帘饶,梯形法和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值是一個概率值,當你隨機挑選一個正樣本以及一個負樣本骆莹,當前的分類算法根據(jù)計算得到的Score值將這個正樣本排在負樣本前面的概率就是AUC值颗搂。當然,AUC值越大幕垦,當前的分類算法越有可能將正樣本排在負樣本前面丢氢,即能夠更好的分類。

從AUC判斷分類器(預測模型)優(yōu)劣的標準:

  • AUC = 1先改,是完美分類器疚察,采用這個預測模型時,存在至少一個閾值能得出完美預測仇奶。絕大多數(shù)預測的場合貌嫡,不存在完美分類器。
  • 0.5 < AUC < 1该溯,優(yōu)于隨機猜測岛抄。這個分類器(模型)妥善設定閾值的話,能有預測價值朗伶。
  • AUC = 0.5弦撩,跟隨機猜測一樣(例:丟銅板),模型沒有預測價值论皆。
  • AUC < 0.5益楼,比隨機猜測還差;但只要總是反預測而行点晴,就優(yōu)于隨機猜測感凤。

三種AUC值示例:

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

為什么使用ROC曲線

既然已經這么多評價標準陪竿,為什么還要使用ROC和AUC呢?因為ROC曲線有個很好的特性:當測試集中的正負樣本的分布變化的時候,ROC曲線能夠保持不變族跛。在實際的數(shù)據(jù)集中經常會出現(xiàn)類不平衡(class imbalance)現(xiàn)象闰挡,即負樣本比正樣本多很多(或者相反),而且測試數(shù)據(jù)中的正負樣本的分布也可能隨著時間變化礁哄。下圖是ROC曲線和Precision-Recall曲線的對比:

在上圖中长酗,(a)和(c)為ROC曲線,(b)和(d)為Precision-Recall曲線桐绒。(a)和(b)展示的是分類其在原始測試集(正負樣本分布平衡)的結果夺脾,(c)和(d)是將測試集中負樣本的數(shù)量增加到原來的10倍后,分類器的結果茉继∵职龋可以明顯的看出,ROC曲線基本保持原貌烁竭,而Precision-Recall曲線則變化較大菲茬。

Reference

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


(注:感謝您的閱讀衔峰,希望本文對您有所幫助佩脊。如果覺得不錯歡迎分享轉載,但請先點擊 這里 獲取授權垫卤。本文由 版權印 提供保護威彰,禁止任何形式的未授權違規(guī)轉載,謝謝穴肘!)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末歇盼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子评抚,更是在濱河造成了極大的恐慌豹缀,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慨代,死亡現(xiàn)場離奇詭異邢笙,居然都是意外死亡,警方通過查閱死者的電腦和手機侍匙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門氮惯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事妇汗×辈唬” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵杨箭,是天一觀的道長厌均。 經常有香客問我,道長告唆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任晶密,我火速辦了婚禮擒悬,結果婚禮上,老公的妹妹穿的比我還像新娘稻艰。我一直安慰自己懂牧,他們只是感情好,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布尊勿。 她就那樣靜靜地躺著僧凤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪元扔。 梳的紋絲不亂的頭發(fā)上躯保,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機與錄音澎语,去河邊找鬼途事。 笑死,一個胖子當著我的面吹牛擅羞,可吹牛的內容都是我干的尸变。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼减俏,長吁一口氣:“原來是場噩夢啊……” “哼召烂!你這毒婦竟也來了?” 一聲冷哼從身側響起娃承,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤奏夫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后历筝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桶蛔,經...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年漫谷,在試婚紗的時候發(fā)現(xiàn)自己被綠了仔雷。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖碟婆,靈堂內的尸體忽然破棺而出电抚,到底是詐尸還是另有隱情,我是刑警寧澤竖共,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布蝙叛,位于F島的核電站,受9級特大地震影響公给,放射性物質發(fā)生泄漏借帘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一淌铐、第九天 我趴在偏房一處隱蔽的房頂上張望肺然。 院中可真熱鬧,春花似錦腿准、人聲如沸际起。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽街望。三九已至,卻和暖如春弟跑,著一層夾襖步出監(jiān)牢的瞬間灾前,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工孟辑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留豫柬,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓扑浸,卻偏偏與公主長得像烧给,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子喝噪,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內容