ROC曲線與AUC指標

ROC曲線

ROC曲線的動機

對於0,1兩類分類問題,一些分類器得到的結果往往不是0,1這樣的標籤,如神經網絡,得到諸如0.5,0.8這樣的分類結果。這時,我們人爲取一個閾值,比如0.4,那麼小於0.4的爲0類,大於等於0.4的爲1類,可以得到一個分類結果。同樣,這個閾值我們可以取0.1,0.2等等。取不同的閾值,得到的最後的分類情況也就不同。

如下面這幅圖:
在這裏插入圖片描述

藍色表示原始爲負類分類得到的統計圖,紅色爲正類得到的統計圖。那麼我們取一條直線,直線左邊分爲負類,右邊分爲正。這條直線也就是我們所取的閾值。

閾值不同,可以得到不同的結果,但是由分類器決定的統計圖始終是不變的。這時候就需要一個獨立於閾值,只與分類器有關的評價指標,來衡量特定分類器的好壞。

還有在類不平衡的情況下,如正樣本90個,負樣本10個,直接把所有樣本分類爲正樣本,得到識別率爲90%。但這顯然是沒有意義的。

如上就是ROC曲線的動機。

混淆矩陣

關於兩類分類問題,原始類爲positive,negative,分類後的類別爲正例,負例。預測結果(Predicted Condition)與正確標記(True Condition)之間存在四種不同的組合,構成混淆矩陣,如下:
在這裏插入圖片描述

TPR與FPR

  • TPR = TP / (TP + FN)
    • 在所有實際爲正例的樣本中,被正確地判斷爲正例的比率
    • 所有真實類別爲 1 的樣本中,預測類別爲 1 的比例
  • FPR = FP / (FP + TN)
    • 在所有實際爲假例的樣本中,被錯誤地判斷爲正例的比率
    • 所有真實類別爲 0 的樣本中,預測類別爲 1 的比例

放在具體領域來理解上述兩個指標,如在醫學診斷中,判斷有病的樣本。

  • 那麼儘量把有病的揪出來是主要任務,也就是第一個指標TPR,要越高越好。
  • 而把沒病的樣本誤診爲有病的,也就是第二個指標FPR,要越低越好。

不難發現,這兩個指標之間是相互制約的。

如果某個醫生對於有病的症狀比較敏感,稍微的小症狀都判斷爲有病,那麼他的第一個指標應該會很高,但是第二個指標也就相應地變高。

最極端的情況下,他把所有的樣本都看做有病,那麼第一個指標達到1,第二個指標也爲1。

ROC曲線

ROC空間將僞正例率(FPR)定義爲 X 軸,真正例率(TPR)定義爲 Y 軸:
在這裏插入圖片描述
在這裏插入圖片描述

我們可以看出,左上角的點(TPR=1,FPR=0)爲完美分類,也就是這個醫生醫術高明,診斷全對。

  • 點A( TPR > FPR ),醫生 A 的判斷大體是正確的。
  • 中線上的點B( TPR = FPR ),也就是醫生 B 全都是蒙的,蒙對一半,蒙錯一半。
  • 下半平面的點C( TPR < FPR),這個醫生說你有病,那麼你很可能沒有病,醫生 C 的話我們要反着聽,爲真庸醫。

上圖中一個閾值,得到一個點。現在我們需要一個獨立於閾值的評價指標來衡量這個醫生的醫術如何,也就是遍歷所有的閾值,得到ROC曲線。

還是一開始的那幅圖,假設如下就是某個醫生的診斷統計圖,直線代表閾值。我們遍歷所有的閾值,能夠在ROC平面上得到如下的ROC曲線。

在這裏插入圖片描述
曲線距離左上角越近,證明分類器效果越好。

在這裏插入圖片描述
如上,是三條ROC曲線,在0.23處取一條直線。

那麼,在同樣的低 FPR = 0.23 的情況下,紅色分類器得到更高的PTR。也就表明,ROC越往上,分類器效果越好。

我們用一個標量值AUC來量化它。

AUC指標

AUC值爲ROC曲線所覆蓋的區域面積,顯然,AUC越大,分類器分類效果越好。

  • AUC 的範圍在[0, 1]之間,並且越接近1越好,越接近0.5屬於亂猜
  • AUC = 1,完美分類器,採用這個預測模型時,不管設定什麼閾值都能得出完美預測。絕大多數預測的場合,不存在完美分類器。
  • 0.5 < AUC < 1,優於隨機猜測。這個分類器(模型)妥善設定閾值的話,能有預測價值。
  • AUC < 0.5,比隨機猜測還差,但只要總是反預測而行,就優於隨機猜測。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章