在進行二分類時,機器學習會計算測試樣本的預測概率,再人為設定一個閾值,當預測概率大于這個閾值時為正類,反之為負類。這個閾值的設定很重要,直接影響了分類器的泛化能力。
roc曲線就是根據不同的閾值,比較同一個分類器的泛化能力。
在提roc曲線時,先了解下這幾個指標:
TP:true positive,正類樣本被分類器正確預測為正類,即真正類
FP:false positive,負類樣本被分類器錯誤預測為正類,即假正類
TN:true negative,負類樣本被分類器正確預測為負類,即真負類
FN:false negative,正類樣本被分類器錯誤預測為負類,即假負類
TPR:true positive rate,正類樣本被分類器預測為正類占樣本中所有正類的比率,即 TP / (TP + FN)
FPR:false negative rate,負類樣本被分類器預測為正類占樣本中所有負類的比率,即FP/(FP+TN)
改變不同的閾值,都會得到一對TPR, FPR,ROC曲線就是以FPR為橫坐標,TPR為縱坐標繪制的曲線。如下圖所示:曲線上的每個點對應不同閾值下的FPR和TPR。
理想目標:TPR=1,FPR=0,即圖中(0,1)點,故ROC曲線越靠攏(0,1)點,越偏離45度對角線越好。
ROC曲線是針對一個分類器下的觀察,如果要分析多個分類器哪個泛化能力比較好的情況下,如果ROC曲線出現相交的情況則難以評定最優分類器。這時候就引入了AUC衡量指標,即ROC曲線下的面積。
這里先強調一下:
TPRate的意義是所有真實類別為1的樣本中,預測類別為1的比例。
FPRate的意義是所有真實類別為0的樣本中,預測類別為1的比例。
AUC表示的意思為,隨機從樣本中抽出一個正樣本和一個負樣本,分類器預測正樣本為正的概率為p1,預測負樣本為正的概率為p2,AUC則表示了p1 > p2的概率。
一下子看可能不好理解,下面就從數學的角度上稍作解釋會更加明朗。
AUC即ROC曲線下的面積,而ROC曲線的橫軸是FPRate,縱軸是TPRate,當二者相等時,即y=x,如下圖:
它所表示的意義為無論是樣本是正樣本還是負樣本,分類器預測兩者為正樣本的概率是一樣的,換句話說,分類器對于正例和負例毫無區分能力,和拋硬幣沒什么區別。這是最差的情況,此時分類器的AUC值為0.5。
而我們希望分類器達到的效果是:對于真實類別為正類的樣本,分類器預測為正類的概率(即TPRate),要大于真實類別為負類而預測類別為正類的概率(即FPRate),即y>x,因此大部分的ROC曲線長成下面這個樣子:
最理想的情況下,沒有真實類別為1而錯分為0的樣本,TPRate一直為1,于是AUC為1,這便是AUC的極大值。