ROC和AUC介绍以及如何计算AUC
轉(zhuǎn)自:?http://alexkong.net/2013/06/introduction-to-auc-and-roc/
 
ROC(Receiver Operating Characteristic)曲線和AUC常被用來評(píng)價(jià)一個(gè)二值分類器(binary classifier)的優(yōu)劣,對(duì)兩者的簡(jiǎn)單介紹見這里。這篇博文簡(jiǎn)單介紹ROC和AUC的特點(diǎn),以及更為深入地,討論如何作出ROC曲線圖以及計(jì)算AUC。
ROC曲線
需要提前說明的是,我們這里只討論二值分類器。對(duì)于分類器,或者說分類算法,評(píng)價(jià)指標(biāo)主要有precision,recall,F-score1,以及我們今天要討論的ROC和AUC。下圖是一個(gè)ROC曲線的示例2。
正如我們?cè)谶@個(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ù)測(cè)所有的樣本都為負(fù)樣本(negative)。類似的,第四個(gè)點(diǎn)(1,1),分類器實(shí)際上預(yù)測(cè)所有的樣本都為正樣本。經(jīng)過以上的分析,我們可以斷言,ROC曲線越接近左上角,該分類器的性能越好。
下面考慮ROC曲線圖中的虛線y=x上的點(diǎn)。這條對(duì)角線上的點(diǎn)其實(shí)表示的是一個(gè)采用隨機(jī)猜測(cè)策略的分類器的結(jié)果,例如(0.5,0.5),表示該分類器隨機(jī)對(duì)于一半的樣本猜測(cè)其為正樣本,另外一半的樣本為負(fù)樣本。
如何畫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ū)間3。
假如我們已經(jīng)得到了所有樣本的概率輸出(屬于正樣本的概率),現(xiàn)在的問題是如何改變“discrimination threashold”?我們根據(jù)每個(gè)測(cè)試樣本屬于正樣本的概率值從大到小排序。下圖是一個(gè)示例,圖中共有20個(gè)測(cè)試樣本,“Class”一欄表示每個(gè)測(cè)試樣本真正的標(biāo)簽(p表示正樣本,n表示負(fù)樣本),“Score”表示每個(gè)測(cè)試樣本屬于正樣本的概率4。
接下來,我們從高到低,依次將“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值的計(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更大的分類器效果更好。
在了解了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)測(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曲線5的對(duì)比:
在上圖中,(a)和(c)為ROC曲線,(b)和(d)為Precision-Recall曲線。(a)和(b)展示的是分類其在原始測(cè)試集(正負(fù)樣本分布平衡)的結(jié)果,(c)和(d)是將測(cè)試集中負(fù)樣本的數(shù)量增加到原來的10倍后,分類器的結(jié)果。可以明顯的看出,ROC曲線基本保持原貌,而Precision-Recall曲線則變化較大。
說明,文中除了第一張圖來自Wikipedia外,其他的圖都來自論文(Fawcett, 2006)6截圖.
引用及其他鏈接:
- 維基百科中對(duì)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)樗鼈兛赡軐?duì)應(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),Fawcett, T. (2006). An introduction to ROC analysis. Pattern recognition letters, 27(8), 861-874.??
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)
總結(jié)
以上是生活随笔為你收集整理的ROC和AUC介绍以及如何计算AUC的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 360安全卫士电脑版xp(360安全卫士
- 下一篇: 雷神高级设置(雷神选择启动设置)
