一、相關概念
ROC的全名叫做Receiver Operating Characteristic,其主要分析工具是一個畫在二維平面上的曲線——ROC curve。平面的橫座標是false positive rate(FPR),錯誤率。縱座標是true positive rate(TPR),真值率。
AUC(Area Under roc Curve)是一種用來度量分類模型好壞的一個標準。爲ROC曲線所覆蓋的區域面積。
二、來源
一些實際的問題對度量標準提出了新的需求。特別的,現實中樣本在不同類別上的不均衡分佈(class distribution imbalance problem)。使得準確率(accuracy)這樣的傳統的度量標準不能恰當的反應分類器的performance。舉個例子:測試樣本中有A類樣本90個,B 類樣本10個。分類器C1根據閾值把所有的測試樣本都分成了A類,分類器C2根據閾值把A類的90個樣本分對了70個,B類的10個樣本分對了5個。則C1的分類精度(準確率)爲 90%,C2的分類精度(準確率)爲75%。但是,顯然C2更有用些。另外,在一些分類問題中犯不同的錯誤代價是不同的(cost sensitive learning)。這樣,默認的分類閾值的傳統做法也顯得不恰當了。
爲了解決上述問題,人們從醫療分析領域引入了一種新的分類模型performance評判方法——ROC分析。
ROC曲線平面的橫座標是false positive rate(FPR),縱座標是true positive rate(TPR)。對某個分類器而言,我們可以根據其在測試樣本上的表現得到一個TPR和FPR點對。這樣,此分類器就可以映射成ROC平面上的一個點。調整這個分類器分類時候使用的閾值,我們就可以得到一個經過(0, 0),(1, 1)的曲線,這就是此分類器的ROC曲線。
一般情況下,這個曲線都應該處於(0, 0)和(1, 1)連線的上方。因爲(0, 0)和(1, 1)連線形成的ROC曲線實際上代表的是一個隨機分類器。如果很不幸,你得到一個位於此直線下方的分類器的話,一個直觀的補救辦法就是把所有的預測結果反向,即:分類器輸出結果爲正類,則最終分類的結果爲負類,反之,則爲正類。雖然,用ROC curve來表示分類器的performance很直觀好用。可是,人們總是希望能有一個數值來標誌分類器的好壞。於是Area Under roc Curve(AUC)就出現了。顧名思義,AUC的值就是處於ROC curve下方的那部分面積的大小。通常,AUC的值介於0.5到1.0之間,較大的AUC代表了較好的performance。