機器學習(三十五)— AUC 原理及計算方式


1、AUC(Area Under Curve)原理

  ROC(Receiver Operating Characteristic)曲線與AUC(Area Under Curve)

     

  ROC曲線:

  • 橫坐標:假正率(False positive rate, FPR),FPR = FP / [ FP + TN] ,代表所有負樣本中錯誤預測為正樣本的概率,假警報率;
  • 縱坐標:真正率(True positive rate, TPR),TPR  = TP / [ TP + FN] ,代表所有正樣本中預測正確的概率,命中率。

  對角線對應於隨機猜測模型,而(0,1)對應於所有正例排在所有反例之前的理想模型。曲線越接近左上角,分類器的性能越好。

  ROC曲線有個很好的特性:當測試集中的正負樣本的分布變化的時候,ROC曲線能夠保持不變。在實際的數據集中經常會出現類不平衡(class imbalance)現象,即負樣本比正樣本多很多(或者相反),而且測試數據中的正負樣本的分布也可能隨着時間變化。

  ROC曲線繪制:

  (1)根據每個測試樣本屬於正樣本的概率值從大到小排序;

  (2)從高到低,依次將“Score”值作為閾值threshold,當測試樣本屬於正樣本的概率大於或等於這個threshold時,我們認為它為正樣本,否則為負樣本;

  (3)每次選取一個不同的threshold,我們就可以得到一組FPR和TPR,即ROC曲線上的一點。 

   當我們將threshold設置為1和0時,分別可以得到ROC曲線上的(0,0)和(1,1)兩個點。將這些(FPR,TPR)對連接起來,就得到了ROC曲線。當threshold取值越多,ROC曲線越平滑。

   AUC(Area Under Curve)即為ROC曲線下的面積。AUC越接近於1,分類器性能越好。

   物理意義:首先AUC值是一個概率值,當你隨機挑選一個正樣本以及一個負樣本,當前的分類算法根據計算得到的Score值將這個正樣本排在負樣本前面的概率就是AUC值。當然,AUC值越大,當前的分類算法越有可能將正樣本排在負樣本前面,即能夠更好的分類。

  計算公式:就是求曲線下矩形面積。

   

推薦系統的 auc:https://mp.weixin.qq.com/s/e3qcSo8LPDf2S8TUvU6S1A

  AUC代表模型預估樣本之間的排序關系,即正負樣本之間預測的gap越大,auc越大。

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

計算邏輯問題:

  AUC計算是基於模型對全集樣本的的排序能力,而真實線上場景,往往只考慮一個用戶一個session下的排序關系。這里的gap往往導致一些問題。正如參考[3]中的舉例的幾個case,比較典型。主要包括兩點:

  1. 線上會出現新樣本,在線下沒有見過,造成AUC不足。這部分更多是采用online learning的方式去緩解,AUC本身可改進的不多。
  2. 線上的排序發生在一個用戶的session下,而線下計算全集AUC,即把user1點擊的正樣本排序高於user2未點擊的負樣本是沒有實際意義的,但線下auc計算的時候考慮了它。
  3. 改進:deepES 數據分析時,分用戶進行 pnr 統計;

2、計算方式

  這個指標想表達的含義,簡單來說其實就是隨機抽出一對樣本(一個正樣本,一個負樣本),然后用訓練得到的分類器來對這兩個樣本進行預測,預測得到正樣本的概率大於負樣本概率的概率。

AUC的計算主要以下幾種方法:

1、計算ROC曲線下的面積。這是比較直接的一種方法,可以近似計算ROC曲線一個個小梯形的面積。幾乎不會用這種方法

2、從AUC統計意義去計算。所有的正負樣本對中,正樣本排在負樣本前面占樣本對數的比例,即這個概率值。

  • 具體的做法就是它也是首先對prob score從大到小排序,然后令最大prob score對應的sample 的rank為n,第二大score對應sample的rank為n-1,以此類推。
  • 然后把所有的正類樣本的rank相加,再減去M-1種兩個正樣本組合的情況。
  • 得到的就是所有的樣本中有多少對正類樣本的score大於負類樣本的score。
  • 最后再除以M×N。

 

(1)方法一:

 

 

  具體來說就是統計一下所有的 M×N(M為正類樣本的數目,N為負類樣本的數目)個正負樣本對中,有多少個組中的正樣本的score大於負樣本的score。當二元組中正負樣本的 score相等的時候,按照0.5計算。然后除以MN。實現這個方法的復雜度為O(n^2)。n為樣本數(即n=M+N) 

(2)方法二

 

 

 

參考文獻:

AUC 計算方式 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM