1. 程式人生 > >ROC與AUC隨記

ROC與AUC隨記

developers.google.com/machine-lea…

混淆矩陣

我們做出以下定義:

  • “狼來了”是正類別。
  • “沒有狼”是負類別。

我們可以使用一個 2x2 混淆矩陣來總結我們的“狼預測”模型,該矩陣描述了所有可能出現的結果(共四種):

行是預測結果,列是真實結果

真正例是指模型將正類別樣本正確地預測為正類別。同樣,真負例是指模型將負類別樣本正確地預測為負類別。

假正例是指模型將負類別樣本錯誤地預測為正類別,而假負例是指模型將正類別樣本錯誤地預測為負類別。

準確率

準確率是指我們的模型預測正確的結果所佔的比例。正式點說,準確率的定義如下:

對於二元分類,也可以根據正類別和負類別按如下方式計算準確率:
其中,TP = 真正例,TN = 真負例,FP = 假正例,FN = 假負例。

精確率

在被識別為正類別的樣本中,確實為正類別的比例是多少?

精確率的定義如下:

召回率

在所有正類別樣本中,被正確識別為正類別的比例是多少?

從數學上講,召回率的定義如下:

F1-score

反映了模型的穩健型

ROC 曲線

ROC 曲線(接收者操作特徵曲線)是一種顯示分類模型在所有分類閾值下的效果的圖表。該曲線繪製了以下兩個引數:

  • 真正例率
  • 假正例率

真正例率 (TPR) 是召回率的同義詞,因此定義如下:

假正例率 (FPR) 的定義如下:

ROC 曲線用於繪製採用不同分類閾值時的 TPR 與 FPR。降低分類閾值會導致將更多樣本歸為正類別,從而增加假正例和真正例的個數。下圖顯示了一個典型的 ROC 曲線。

為了計算 ROC 曲線上的點,我們可以使用不同的分類閾值多次評估邏輯迴歸模型,但這樣做效率非常低。幸運的是,有一種基於排序的高效演算法可以為我們提供此類資訊,這種演算法稱為曲線下面積。

曲線下面積:ROC 曲線下面積

AUC (Area Under Curve) 被定義為ROC曲線下的面積,顯然這個面積的數值不會大於1。又由於ROC曲線一般都處於y=x這條直線的上方,所以AUC的取值範圍一般在0.5和1之間。使用AUC值作為評價標準是因為很多時候ROC曲線並不能清晰的說明哪個分類器的效果更好,而作為一個數值,對應AUC更大的分類器效果更好。

曲線下面積表示“ROC 曲線下面積”。也就是說,曲線下面積測量的是從 (0,0) 到 (1,1) 之間整個 ROC 曲線以下的整個二維面積

曲線下面積對所有可能的分類閾值的效果進行綜合衡量。曲線下面積的一種解讀方式是看作模型將某個隨機正類別樣本排列在某個隨機負類別樣本之上的概率。以下面的樣本為例,邏輯迴歸預測從左到右以升序排列:

曲線下面積因以下兩個原因而比較實用:

  • 曲線下面積的尺度不變。它測量預測的排名情況,而不是測量其絕對值。
  • 曲線下面積的分類閾值不變。它測量模型預測的質量,而不考慮所選的分類閾值。

不過,這兩個原因都有各自的侷限性,這可能會導致曲線下面積在某些用例中不太實用:

  • 並非總是希望尺度不變。 例如,有時我們非常需要被良好校準的概率輸出,而曲線下面積無法告訴我們這一結果。

  • 並非總是希望分類閾值不變。 在假負例與假正例的代價存在較大差異的情況下,儘量減少一種型別的分類錯誤可能至關重要。例如,在進行垃圾郵件檢測時,您可能希望優先考慮儘量減少假正例(即使這會導致假負例大幅增加)。對於此類優化,曲線下面積並非一個實用的指標。