1. 程式人生 > >效能指標(模型評估)之ROC與AUC

效能指標(模型評估)之ROC與AUC

為什麼ROC

在前面已經介紹了mAP效能指標,用於評估模型的效能(查全&查準雙高)了。這裡為什麼還需要介紹ROC呢?他是何方妖孽?

通過前面的P-R曲線可以看出來,選取的top-N隨著N的不同,模型對查全和差準的重視程度各有不同,比如N較小時更看重“查準率”,N越大越重視“查全率”。因此,排序本身的好壞,體現了綜合考慮學習器在不同任務下的“期望泛化效能”的好壞,或者是“一般情況下”泛化效能的好壞。ROC就是從這個角度來研究學習器的泛化效能的有力工具。

什麼是ROC

ROC的全稱是“受試者工作特徵”(receiver operating characteristic)曲線,源於“二戰”敵機檢測的雷達訊號分析技術。這裡為了說清楚他的定義,我們再次回顧下前面提到的表,同時也加入了兩個定義。

表1 測試樣本分類說明(分4類)
真實情況 預測為正 預測為反 召回率
TP(真正) FN(假反) TPR(R)=TPTP+FN
FP(假正) TN(真反) FPR=FPTN+FP
準確率 P=TPTP+FP

準確率

預測結果中,究竟有多少是真的正?(找出來的對的比例)

P=TPTP+FP

召回率

所有正樣本中,你究竟預測對了多少?(找回來了幾個)

R=TPTP+FN

這裡要補充兩個東西

真正例率(True Positive Rate)

TPR=TPTP+FN

假正例率
(False Positive Rate)

FPR=FPTN+FP

看到了嗎?真正例率就是召回率,假正例率就是實際是反的當中,有多少被判為了正。ROC曲線就是以TPR為縱軸,FPR為橫軸的曲線。

中間的對角線對應於“隨機猜測”模型,(0,1)對應所有正例排在反例之前的“理想模型”。值得注意的是,現實任務中通常是利用有限個測試樣例繪製ROC圖,因此不會得到光滑的曲線,只能得到向上面的右圖離散圖形,離散ROC曲線繪製過程和P-R曲線繪製套路相同(就是對預測輸出從高到低排序,然後一次劃分)。同樣地,若一個學習器的ROC曲線被另一個學習器完全包圍,則後者效能更優,當然交叉式就很難說了,此時可比較ROC曲線下的面積,即是AUC,進行比較。