分類器性能度量指標之ROC曲線、AUC值

目錄

 

概述

混淆矩陣(Confusion matrix)

ROC曲線

AUC(Area under the ROC curve)

AUC能拿來幹什麼

總結

參考資料:


概述

二分類問題在機器學習中是一個很常見的問題,經常會用到。ROC (Receiver Operating Characteristic) 曲線和 AUC (Area Under the Curve)(Area Under theCurve) 值常被用來評價一個二值分類器 (binary classifier) 的優劣。

對於分類器,或者說分類算法,評價指標主要有precision,recall,F-score等,以及這裏要討論的ROC和AUC。

混淆矩陣(Confusion matrix)

混淆矩陣是理解大多數評價指標的基礎,毫無疑問也是理解AUC的基礎。豐富的資料介紹着混淆矩陣的概念,這裏用一個經典圖來解釋混淆矩陣是什麼。

 

混淆矩陣

顯然,混淆矩陣包含四部分的信息:

  • True negative[TN] :稱爲真陰率,表示實際是負樣本預測成負樣本的樣本數。
  • Flase positive[FP] :稱爲假陽率,表示實際是負樣本預測成正樣本的樣本數。
  • False negative[FN]:稱爲假陰率,表示實際是正樣本預測成負樣本的樣本數。
  • True positive[TP] :稱爲真陽率,表示實際是正樣本預測成正樣本的樣本數。

對照着混淆矩陣,很容易就能把關係、概念理清楚,但是久而久之,也很容易忘記概念。不妨我們按照位置前後分爲兩部分記憶,前面的部分是True/False表示真假,即代表着預測的正確性,後面的部分是positive/negative表示正負樣本,即代表着預測的結果,所以,混淆矩陣即可表示爲正確性-預測結果的集合。現在我們再來看上述四個部分的概念(均代表樣本數,下述省略):

  • TN,預測是負樣本,預測對了
  • FP,預測是正樣本,預測錯了
  • FN,預測是負樣本,預測錯了
  • TP,預測是正樣本,預測對了

幾乎我所知道的所有評價指標,都是建立在混淆矩陣基礎上的,包括準確率、精準率、召回率、F1-score,當然也包括AUC。

ROC曲線

事實上,要一下子弄清楚什麼是AUC並不是那麼容易,首先我們要從ROC曲線說起。對於某個二分類分類器來說,輸出結果標籤(0還是1)往往取決於輸出的概率以及預定的概率閾值,比如常見的閾值就是0.5,大於0.5的認爲是正樣本,小於0.5的認爲是負樣本。如果增大這個閾值,預測錯誤(針對正樣本而言,即指預測是正樣本但是預測錯誤,下同)的概率就會降低但是隨之而來的就是預測正確的概率也降低;如果減小這個閾值,那麼預測正確的概率會升高但是同時預測錯誤的概率也會升高。實際上,這種閾值的選取也一定程度上反映了分類器的分類能力。我們當然希望無論選取多大的閾值,分類都能儘可能地正確,也就是希望該分類器的分類能力越強越好,一定程度上可以理解成一種魯棒能力吧。
爲了形象地衡量這種分類能力,ROC曲線橫空出世!如下圖所示,即爲一條ROC曲線(該曲線的原始數據第三部分會介紹)。現在關心的是:
- 橫軸:False Positive Rate(假陽率,FPR)
- 縱軸:True Positive Rate(真陽率,TPR)

ROC曲線圖

 

假陽率,簡單通俗來理解就是預測爲正樣本但是預測錯了的可能性,顯然,我們不希望該指標太高。

真陽率,則是代表預測爲正樣本但是預測對了的可能性,當然,我們希望真陽率越高越好。

顯然,ROC曲線的橫縱座標都在[0,1]之間,自然ROC曲線的面積不大於1。現在我們來分析幾個特殊情況,從而更好地掌握ROC曲線的性質

  • (0,0):假陽率和真陽率都爲0,即分類器全部預測成負樣本
  • (0,1):假陽率爲0,真陽率爲1,全部完美預測正確,happy
  • (1,0):假陽率爲1,真陽率爲0,全部完美預測錯誤,悲劇
  • (1,1):假陽率和真陽率都爲1,即分類器全部預測成正樣本
  • TPR=FPR,斜對角線,預測爲正樣本的結果一半是對的,一半是錯的,代表隨機分類器的預測效果

於是,我們可以得到基本的結論:ROC曲線在斜對角線以下,則表示該分類器效果差於隨機分類器,反之,效果好於隨機分類器,當然,我們希望ROC曲線儘量除於斜對角線以上,也就是向左上角(0,1)凸

AUC(Area under the ROC curve)

ROC曲線一定程度上可以反映分類器的分類效果,但是不夠直觀,我們希望有這麼一個指標,如果這個指標越大越好,越小越差,於是,就有了AUC。AUC實際上就是ROC曲線下的面積。AUC直觀地反映了ROC曲線表達的分類能力

  • AUC = 1,代表完美分類器
  • 0.5 < AUC < 1,優於隨機分類器
  • 0 < AUC < 0.5,差於隨機分類器

AUC能拿來幹什麼

AUC最大的應用應該就是點擊率預估(CTR)的離線評估。CTR的離線評估在公司的技術流程中佔有很重要的地位,一般來說,ABTest和轉全觀察的資源成本比較大,所以,一個合適的離線評價可以節省很多時間、人力、資源成本。那麼,爲什麼AUC可以用來評價CTR呢?我們首先要清楚兩個事情:

       1. CTR是把分類器輸出的概率當做是點擊率的預估值,如業界常用的LR模型,利用sigmoid函數將特徵輸入與概率輸出聯繫起來,這個輸出的概率就是點擊率的預估值。內容的召回往往是根據CTR的排序而決定的。
       2. AUC量化了ROC曲線表達的分類能力。這種分類能力是與概率、閾值緊密相關的,分類能力越好(AUC越大),那麼輸出概率越合理,排序的結果越合理。

我們不僅希望分類器給出是否點擊的分類信息,更需要分類器給出準確的概率值,作爲排序的依據。所以,這裏的AUC就直觀地反映了CTR的準確性(也就是CTR的排序能力)

總結

  1. ROC曲線反映了分類器的分類能力,結合考慮了分類器輸出概率的準確性
  2. AUC量化了ROC曲線的分類能力,越大分類效果越好,輸出概率越合理
  3. AUC常用作CTR的離線評價,AUC越大,CTR的排序能力越強

參考資料:

[1]From 機器學習和統計裏面的auc怎麼理解?
[2]From 精確率、召回率、F1 值、ROC、AUC 各自的優缺點是什麼?
[3]From 機器學習之分類性能度量指標 : ROC曲線、AUC值、正確率、召回率
[4]From ROC曲線、AUC值

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章