機器學(xué)習(xí)基礎(chǔ):別 亂 用 AUC
點擊上方“程序員大白”,選擇“星標”公眾號
重磅干貨,第一時間送達


難得的好文。
目前普遍認為接收器工作特性(Receiver Operating Characteristic,ROC)曲線下的面積 ——AUC 是評估分類模型準確性的標準方法。它避免了在閾值選擇過程中假定的主觀性,當連續(xù)的概率得到的分數(shù)被轉(zhuǎn)換為二分類標簽時,通過總結(jié)整體模型表現(xiàn),其衡量模型區(qū)分正負樣本的性能優(yōu)于通過閾值來判斷的其他方法(比如準確率、召回率等)。在這篇手稿中,我們回顧了這一度量的一些特點,并將其作為模型結(jié)果的準確性的比較度量,對其可靠性提出了質(zhì)疑。我們不建議使用 AUC 出于五個原因:
(1) 忽略了預(yù)測的概率值和模型的擬合優(yōu)度;(舉個例子,假設(shè)某個模型對 “1” 類樣本輸出的概率都是 0.51,對 “0” 類樣本輸出的概率均為 0.49,此時 AUC 是 1,但是二元交叉熵非常大,因為預(yù)測結(jié)果和真實標簽之間的誤差太大);根據(jù) auc 的公式我們可以知道 auc 對于具體的概率值不敏感,它的計算過程事先會把概率值轉(zhuǎn)化為 rank 排序,所以 auc 永遠只對排序敏感對具體的概率指不敏感:
舉個例子,假設(shè)有 10000 個樣本,5000 個正樣本,5000 個負樣本,此時我們對 5000 個正樣本的預(yù)測概率為 0.2,對 5000 個負樣本的預(yù)測概率為 0.3,此時 auc 為 1,但是模型的擬合優(yōu)度非常差,二元交叉熵慘不忍睹,看起來完全就是沒有擬合完全的情況。
(2) AUC 反應(yīng)了太過籠統(tǒng)的信息。無法反應(yīng)召回率、精確率等在實際業(yè)務(wù)中經(jīng)常關(guān)心的指標
看了原文,大意就是,比如我們在安全監(jiān)測中,對查全率非??粗?,對查準率倒是無所謂,反正盡量把恐怖分子查出來,即使錯誤檢查了很多正常人也只是浪費點時間而已而恐怖事件相比不值一提,但是 auc 反應(yīng)的是模型對正負樣本的區(qū)分能力,在一些情況下無法滿足建模的真實需求。
(3) 對 FPR 和 TPR 兩種錯誤的代價同等看待;這一點和第二點雷同,基本的意思就是當用戶對不同類別的預(yù)測準確率有不同程度的需求時,auc 不能很好的滿足這個需求。
(4) 它沒有給出模型誤差的空間分布信息(我們不知道模型預(yù)測錯誤的具體情況,比如哪一類預(yù)測的錯誤多,比如整體錯誤的分布情況等等,舉個例子,我們通過對不同類別錯誤預(yù)測的概率和真實標簽的誤差進行畫圖可以了解到模型對哪一類樣本預(yù)測錯誤率高對哪一類樣本預(yù)測的精度高,從而有針對的對特征工程、樣本權(quán)重等進行優(yōu)化,但是 auc 無法反應(yīng)這類信息),AUC 只關(guān)注正負樣本之間的排序,并不關(guān)心正樣本內(nèi)部,或者負樣本內(nèi)部的排序,這樣我們也無法衡量樣本對于好壞客戶的好壞程度的刻畫能力;
(5) 最重要的一點,AUC 的 misleading 的問題:

如圖,modelA 和 modelB 的 ROC 曲線下面積 AUC 是相等的,但是兩個模型在不同區(qū)域的預(yù)測能力是不相同的,所以我們不能單純根據(jù) AUC 的大小來判斷模型的好壞。
推薦閱讀
關(guān)于程序員大白
程序員大白是一群哈工大,東北大學(xué),西湖大學(xué)和上海交通大學(xué)的碩士博士運營維護的號,大家樂于分享高質(zhì)量文章,喜歡總結(jié)知識,歡迎關(guān)注[程序員大白],大家一起學(xué)習(xí)進步!
