機(jī)器學(xué)習(xí)-01-模型評(píng)價(jià)-ROC和AUC

轉(zhuǎn)載自:孔明狂魔,主要學(xué)習(xí)內(nèi)容來源:

http://alexkong.net/2013/06/introduction-to-auc-and-roc/

感謝原作者的知識(shí)普及酌摇。

轉(zhuǎn)載詳細(xì)內(nèi)容:

ROC(Receiver Operating Characteristic)曲線和AUC常被用來評(píng)價(jià)一個(gè)二值分類器(binary classifier)的優(yōu)劣,對兩者的簡單介紹見這里坞笙。這篇博文簡單介紹ROC和AUC的特點(diǎn)踏拜,以及更為深入地碎赢,討論如何作出ROC曲線圖以及計(jì)算AUC。

ROC曲線

需要提前說明的是速梗,我們這里只討論二值分類器肮塞。對于分類器,或者說分類算法姻锁,評(píng)價(jià)指標(biāo)主要有precision枕赵,recall,F(xiàn)-score1屋摔,以及我們今天要討論的ROC和AUC烁设。下圖是一個(gè)ROC曲線的示例2

正如我們在這個(gè)ROC曲線的示例圖中看到的那樣钓试,ROC曲線的橫坐標(biāo)為false positive rate(FPR)装黑,縱坐標(biāo)為true positive rate(TPR)。下圖中詳細(xì)說明了FPR和TPR是如何定義的弓熏。

接下來我們考慮ROC曲線圖中的四個(gè)點(diǎn)和一條線恋谭。第一個(gè)點(diǎn),(0,1)挽鞠,即FPR=0, TPR=1疚颊,這意味著FN(false negative)=0狈孔,并且FP(false positive)=0。Wow材义,這是一個(gè)完美的分類器均抽,它將所有的樣本都正確分類。第二個(gè)點(diǎn)其掂,(1,0)油挥,即FPR=1,TPR=0款熬,類似地分析可以發(fā)現(xiàn)這是一個(gè)最糟糕的分類器深寥,因?yàn)樗晒Ρ荛_了所有的正確答案。第三個(gè)點(diǎn)贤牛,(0,0)惋鹅,即FPR=TPR=0,即FP(false positive)=TP(true positive)=0殉簸,可以發(fā)現(xiàn)該分類器預(yù)測所有的樣本都為負(fù)樣本(negative)闰集。類似的,第四個(gè)點(diǎn)(1,1)般卑,分類器實(shí)際上預(yù)測所有的樣本都為正樣本返十。經(jīng)過以上的分析,我們可以斷言椭微,ROC曲線越接近左上角,該分類器的性能越好盲链。

下面考慮ROC曲線圖中的虛線y=x上的點(diǎn)蝇率。這條對角線上的點(diǎn)其實(shí)表示的是一個(gè)采用隨機(jī)猜測策略的分類器的結(jié)果,例如(0.5,0.5)刽沾,表示該分類器隨機(jī)對于一半的樣本猜測其為正樣本本慕,另外一半的樣本為負(fù)樣本。

如何畫ROC曲線

對于一個(gè)特定的分類器和測試數(shù)據(jù)集侧漓,顯然只能得到一個(gè)分類結(jié)果锅尘,即一組FPR和TPR結(jié)果,而要得到一個(gè)曲線布蔗,我們實(shí)際上需要一系列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”呢顿乒?我們忽略了分類器的一個(gè)重要功能“概率輸出”,即表示分類器認(rèn)為某個(gè)樣本具有多大的概率屬于正樣本(或負(fù)樣本)泽谨。通過更深入地了解各個(gè)分類器的內(nèi)部機(jī)理璧榄,我們總能想辦法得到一種概率輸出特漩。通常來說,是將一個(gè)實(shí)數(shù)范圍通過某個(gè)變換映射到(0,1)區(qū)間3骨杂。

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

接下來杜耙,我們從高到低搜骡,依次將“Score”值作為閾值threshold,當(dāng)測試樣本屬于正樣本的概率大于或等于這個(gè)threshold時(shí)佑女,我們認(rèn)為它為正樣本记靡,否則為負(fù)樣本。舉例來說团驱,對于圖中的第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)對連接起來即横,就得到了ROC曲線。當(dāng)threshold取值越多裆赵,ROC曲線越平滑令境。

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

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ù)值朦促,對應(yīng)AUC更大的分類器效果更好。

在了解了ROC曲線的構(gòu)造過程后栓始,編寫代碼實(shí)現(xiàn)并不是一件困難的事情务冕。相比自己編寫代碼,有時(shí)候閱讀其他人的代碼收獲更多幻赚,當(dāng)然過程也更痛苦些禀忆。在此推薦scikit-learn中關(guān)于計(jì)算AUC的代碼

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ù)樣本前面,即能夠更好的分類矢棚。

為什么使用ROC曲線

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

在上圖中弯蚜,(a)和(c)為ROC曲線孔轴,(b)和(d)為Precision-Recall曲線。(a)和(b)展示的是分類其在原始測試集(正負(fù)樣本分布平衡)的結(jié)果碎捺,(c)和(d)是將測試集中負(fù)樣本的數(shù)量增加到原來的10倍后路鹰,分類器的結(jié)果贷洲。可以明顯的看出晋柱,ROC曲線基本保持原貌优构,而Precision-Recall曲線則變化較大。

說明雁竞,文中除了第一張圖來自Wikipedia外钦椭,其他的圖都來自論文(Fawcett, 2006)6截圖.

引用及其他鏈接:

維基百科中對ROC的介紹: http://en.wikipedia.org/wiki/Receiver_operating_characteristic

ROC曲線及AUC評(píng)價(jià)指標(biāo) by 冒泡的崔:http://bubblexc.com/y2011/148/

我避免將precision,recall等評(píng)價(jià)指標(biāo)翻譯成中文碑诉,因?yàn)樗鼈兛赡軐?yīng)多個(gè)中文解釋彪腔,極易產(chǎn)生混淆。?

圖片來源:http://en.wikipedia.org/wiki/File:Roccurves.png?

這種映射不一定都是可靠的进栽,即你不一定真的得到了某個(gè)樣本是正樣本的概率德挣。?

注意這里使用了“Score”,而不是概率泪幌,我們暫且可以認(rèn)為“Score”值就是是正樣本的概率盲厌。?

Davis, J., & Goadrich, M. (2006, June). The relationship between Precision-Recall and ROC curves. In Proceedings of the 23rd international conference on Machine learning (pp. 233-240). ACM.?

(Fawcett, 2006),F(xiàn)awcett, T. (2006). An introduction to ROC analysis. Pattern recognition letters, 27(8), 861-874.?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末祸泪,一起剝皮案震驚了整個(gè)濱河市吗浩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌没隘,老刑警劉巖懂扼,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異右蒲,居然都是意外死亡阀湿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門瑰妄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陷嘴,“玉大人,你說我怎么就攤上這事间坐≡职ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵竹宋,是天一觀的道長劳澄。 經(jīng)常有香客問我,道長蜈七,這世上最難降的妖魔是什么秒拔? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮飒硅,結(jié)果婚禮上砂缩,老公的妹妹穿的比我還像新娘作谚。我一直安慰自己,他們只是感情好梯轻,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布食磕。 她就那樣靜靜地躺著,像睡著了一般喳挑。 火紅的嫁衣襯著肌膚如雪彬伦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天伊诵,我揣著相機(jī)與錄音单绑,去河邊找鬼。 笑死曹宴,一個(gè)胖子當(dāng)著我的面吹牛搂橙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播笛坦,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼区转,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了版扩?” 一聲冷哼從身側(cè)響起废离,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎礁芦,沒想到半個(gè)月后蜻韭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡柿扣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年肖方,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片未状。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡俯画,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出司草,到底是詐尸還是另有隱情艰垂,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布翻伺,位于F島的核電站,受9級(jí)特大地震影響沮焕,放射性物質(zhì)發(fā)生泄漏吨岭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一峦树、第九天 我趴在偏房一處隱蔽的房頂上張望辣辫。 院中可真熱鬧旦事,春花似錦、人聲如沸急灭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽葬馋。三九已至卖鲤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間畴嘶,已是汗流浹背蛋逾。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留窗悯,地道東北人区匣。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像蒋院,于是被迫代替她去往敵國和親亏钩。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容