參考文獻:機器學習與數據挖掘參考文獻
很多學習器是爲測試樣本產生一個實值或概率預測,然後將這個預測值與一個分類閾值進行比較,若大於閾值則分爲正類,否則爲反類。例如,神經網絡在一般情形下是對每個測試樣本預測出宇哥[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)對應於將所有正例排在所有反例之前的“理想模型”。
現實任務中通常是利用有限個測試樣例來繪製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曲線下各部分的面積求和而得。