ROC和CMC曲線的理解
ROC曲線
- ROC曲線
ROC曲線意為受試者工作特徵曲線 (receiver operating characteristic curve,簡稱ROC曲線)。曲線上沒一個點反映著對同一信號刺激的感受性。
橫軸:負正類率(false postive rate FPR)特異度,代表分類器預測的正類中實際負實例占所有負實例的比例,FP/(FP+TN);(1-Specificity)
縱軸:真正類率(true postive rate TPR)靈敏度,代表分類器預測的正類中實際正實例占所有正實例的比例,TP/(TP+FN);Sensitivity(正類覆蓋率)
- 預測情況分類
針對一個二分類問題,將實例分成正類(positive)和負類(negative)。但實際分類中,會出現四種情況:
(1)若一個實例是正類,並且被預測成為正類,即為真正類(True Postive TP)
(2)若一個實例是正類,但是被預測成為負類,即為假負類(False Negative FN)
(3)若一個實例是負類,但是被預測成為正類,即為假正類(False Postive FP)
(4)若一個實例是負類,並且被預測成為負類,即為真負類(True Negative TN)
- ROC曲線的變換
假設採用邏輯回歸分類器,其給出對每個實例為正類的概率,那麼假設一個閾值為0.6,當概率大於0.6的時候為正類,當小於0.6的時候為負類。對應的就可以算出一組(FPR,TPR),在平面中得到對應坐標點。
隨著閾值的減小,越來越多的實例被劃分為正類,即TP的數量越來越多,FN的數量越來越少,通過計算公式TP/(TP+FN)可以看到,TPR的值趨近於1;同時,當越來越多的實例被劃分為正類時,這些正類當中也同樣摻雜著真正的負實例,並且隨著閾值的減少,TN的數量越來越少,通過計算公式FP/(FP+TN)可以看到,FPR的值趨近於1。因此,閾值最小時,對應坐標為(1,1)。
隨著閾值的增加,越來越多的實例被還分為負類,即TP的數量越來越少,FN的數量越來越多,最終導致TPR的值趨近於0;同樣道理,FP的值也趨近於0,導致FPR的值趨近於0。因此,閾值最大時,對應坐標為(0,0)。
- ROC曲線意義
ROC曲線指受試者工作特徵曲線(receiver operating characteristic curve), 是反映敏感性和特異性連續變數的綜合指標,是用構圖法揭示敏感性和特異性的相互關係,它通過將連續變數設定出多個不同的臨界值,從而計算出一系列敏感性和特異性,再以敏感性為縱坐標、(1-特異性)為橫坐標繪製成曲線,曲線下面積越大,診斷準確性越高。在ROC曲線上,最靠近坐標圖左上方的點為敏感性和特異性均較高的臨界值。
橫軸FPR:FPR的值越大,說明預測的正類中實際的負類越多;
縱軸TPR:TRP的值越大,說明預測的正類中實際的正類越多。
理想目標:TPR=1,FPR=0,即圖中(0,1)點,故ROC曲線越靠攏(0,1)點,越偏離45度對角線越好,Sensitivity、Specificity越大效果越好。
- 如何畫ROC曲線
假設已經得出一系列樣本被劃分為正類的概率,然後按照大小排序,下圖是一個示例,圖中共有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曲線的結果如下圖:
- AUC值
AUC(Area Under Curve)被定義為ROC曲線下的面積,顯然這個面積的數值不會大於1。又由於ROC曲線一般都處於y=x這條直線的上方,所以AUC的取值範圍在0.5和1之間。使用AUC值作為評價標準是因為很多時候ROC曲線並不能清晰的說明哪個分類器的效果更好,而作為一個數值,對應AUC更大的分類器效果更好。
- 為什麼使用Roc和Auc評價分類器
既然已經這麼多標準,為什麼還要使用ROC和AUC呢?因為ROC曲線有個很好的特性:當測試集中的正負樣本的分布變換的時候,ROC曲線能夠保持不變。在實際的數據集中經常會出現樣本類不平衡,即正負樣本比例差距較大,而且測試數據中的正負樣本也可能隨著時間變化。下圖是ROC曲線和Presision-Recall曲線的對比:
在上圖中,(a)和(c)為Roc曲線,(b)和(d)為Precision-Recall曲線。
(a)和(b)展示的是分類其在原始測試集(正負樣本分布平衡)的結果,(c)(d)是將測試集中負樣本的數量增加到原來的10倍後,分類器的結果,可以明顯的看出,ROC曲線基本保持原貌,而Precision-Recall曲線變化較大。
CMC曲線
- CMC曲線
CMC曲線全稱是Cumulative Match Characteristic (CMC) Curve,也就是累積匹配曲線,同ROC曲線Receiver Operating Characteristic (ROC) curve一樣,是模式識別系統,如人臉,指紋,虹膜等的重要評價指標,尤其是在生物特徵識別系統中,一般同ROC曲線一起給出,能夠綜合評價出演算法的好壞。
CMC曲線綜合反映了分類器的性能,它評價的指標與深度學習當中常用的top1 err和top5 err評價指標一樣的意思,不同的是橫坐標的Rank表示的是正確率而不是錯誤率,兩者的關係是:
Rank1識別率 = 1 - top1 err
Rank5識別率 = 1 - top5 err
它們表示的是什麼意思呢?就比如給你一個選擇題,有10個選項,但是只有一個選項是正確的,現在讓你從中選出正確答案。如果讓你猜一次,正確的概率為1/10,你感覺自己狀態不好,想從猜一次,現在給你機會,讓你再猜一次,現在你總共猜兩次,選兩個答案,正確率一下子提高到1/5,你又說了,猜兩次反映不出你的水平,你要猜五次,也就是從10個選項中選5個選項,這5個選項中包括正確選項的概率大大增加,變為1/2,如果讓你猜10次,那蒙對的概率肯定為1了,也有人蒙的能力比較強,可能猜3次就能猜到正確答案,也就是提前收斂到1。CMC曲線Rank1識別率就是表示按照某種相似度匹配規則匹配後,第一次就能判斷出正確的標籤的數目與總的測試樣本數目之比,Rank5識別率就是指前五項(按照匹配程度從大到小排列後)有正確匹配。如果一個樣本按照匹配程度從大到小排列後,到最後一項,才匹配到正確標籤,這就說明分類器不太好,把最應匹配的判別成最不應匹配的。
原版參考有道雲筆記:
http://note.youdao.com/noteshare?id=2bc94eec0889569f7fad8d0f4089e248&sub=A8CB9D13B8F64EF584383EA5FA45B03E參考:
http://blog.csdn.net/zdy0_2004/article/details/44948511
ROC曲線_百度百科
模式識別分類器評價指標之CMC曲線 - CSDN博客
推薦閱讀:
※全球最先進的表情機器人公司Hanson Robotics | RAI酷企
※探索路人能聽得懂的深度學習(視頻更新中)
※Google AI:如何破解AI學術研究的贏者詛咒?
※重磅 | 牛津劍橋OpenAI聯合發出AI預警《人工智慧的惡意使用》
※深扒人工智慧——基礎技術篇