機器學習與數據挖掘之ROC與AUC

參考文獻:機器學習與數據挖掘參考文獻


圖1 分類結果混淆矩陣

很多學習器是爲測試樣本產生一個實值或概率預測,然後將這個預測值與一個分類閾值進行比較,若大於閾值則分爲正類,否則爲反類。例如,神經網絡在一般情形下是對每個測試樣本預測出宇哥[0.0, 1.0]之間的實值,然後將這個值與0.5進行比較,大於0.5則判爲正例,否則爲反例。這個實值或概率預測結果的好壞,直接決定了學習器的泛化能力。實際上,根據這個實值或概率預測結果,可將測試樣本進行排序,“最可能”是正例的排在最前面,“最不可能”是正例的排在最後面。這樣,分類過程就相當於在這個排序中以某個“截斷點”將樣本分爲兩部分,前一部分判作正例,後一部分則判作反例。

在不同的應用任務中,可根據任務需求來採用不同的截斷點,若更重視“查準率”(又稱爲精確率, Precision,P=TP/(TP+FP)),則可選擇排序中靠前的位置進行截斷;若更重視“查全率”(又稱爲召回率,Recall,R=TP/(TP+FN)),則可選擇靠後的位置進行截斷。因此,排序本身的質量好壞,體現了綜合考慮學習器在不同任務下的“期望泛化性能”的好壞,或者說,“一般情況下”泛化性能的好壞。ROC曲線則是從這個角度出發來研究學習器泛化性能的有力工具。

ROC全稱是“受試者工作特徵”(Receiver Operating Characteristic)曲線。根據學習器的預測結果對樣例進行排序,按此順序逐個把樣本作爲正例進行預測,每次計算出兩個重要量的值,分別以它們爲橫、縱座標作圖,就得到了“RPC曲線”。ROC曲線的縱軸是“真正例率”(True Positive Rate,TPR),橫軸是“假正例率”(False Positive Rate,FPR),兩者分別定義爲

TPR=TP/(TP+FN)

FPR=FP/(TN+FP)

顯示ROC曲線的圖稱爲“ROC圖”,如圖2所示。對角線對應於“隨機猜測”模型,而點(0,1)對應於將所有正例排在所有反例之前的“理想模型”。




圖2 ROC圖

現實任務中通常是利用有限個測試樣例來繪製ROC圖,此時僅能獲得有限個(真正例率,假正例率)座標對。繪圖過程:給定m+個正例和m-個反例,根據學習器預測結果對樣例進行排序,然後把分類閾值設爲最大,即把所有樣例均預測爲反例,此時真正例率和假正例率均爲0,在座標(0,0)處標記一個點。設前一個標記點座標爲(x,y),當前若爲真正例,則對應標記點的座標爲(x,y+1/m+);當前若爲假正例,則對應標記點的座標爲(x+1/m-,y),然後用線段連接相鄰點即得。

進行學習器的比較時,若一個學習器的ROC曲線被另一個學習器的曲線完全“包住”,則可斷言後者的性能優於前者;若兩個學習器的ROC曲線發生交叉,則難以一般性地斷言兩者孰優孰劣。此時如果一定要進行比較,則較爲合理的判據是比較ROC曲線下的面積,即AUC(Area Under ROC Curve)。AUC可通過對ROC曲線下各部分的面積求和而得。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章