天天看點

點選率模型AUC一 背景 

      首先舉個例子:

                         正樣本(90)                       負樣本(10)        

模型1預測        正(90)                                正(10)

模型2預測        正(70)負(20)                正(5)負(5)

結論:

       模型1準确率90%;

       模型2 準确率75%      

       考慮對正負樣本對預測能力,顯然模型2要比模型1好,但對于這種正負樣本分布不平衡對資料,準确率不能衡量分類器對好壞了,是以需要名額auc解決傾斜樣本的評價問題。

二分類混淆矩陣

預測\實際       1            0

1                    TP          FP

0                    FN          TN

       TPR=TP/P=TP/TP+FN   直覺1中猜對多少

       FPR=FP/N=FP/FP+TN  直覺0中猜錯多少

       Auc對橫縱坐标分别為FPR和TPR,相對于y=x這條直線靠近左上角對分類器性能更好,是以模型2更優。

                            TPR                            FPR

模型1                 90/90=1                   10/10=1

模型2                 70/90=0.78                5/10=0.5

模型1和2的auc點位分别如下圖所示,顯然模型1更優:

點選率模型AUC一 背景 

二 研究現狀 

       AUC直覺概念,任意取一對正負樣本,正樣本score大于負樣本對機率。 

       計算方法:正樣本和負樣本pair對,auc=預估正樣本score大于負樣本score的pair對數/總的pair對數。

       E.g. 分别計算模型1和2對auc?

四個樣本label為y1=+1, y2=+1, y3=-1, y4=-1

模型1的預測為 y1=0.9, y2=0.5, y3=0.2, y4=0.6

模型2的預測為 y1=0.1, y2=0.9, y3=0.8, y4=0.2

解: 

        模型1: 正樣本score大于負樣本的pair包括(y1, y3), (y1, y4), (y2, y3),auc為3/4=0.75

        模型2: 正樣本score大于負樣本的pair包括(y2, y3),(y2, y4),auc為2/4=0.5

計算參考paper:《 An introduction to ROC analysis 》(Tom Fawcett)

方法:

1按照score對樣本排序;

2依次對每個樣本,label分對TP增1,否則FP增1。計算每個小梯形的面積。

3累加所有樣本,計算auc

代碼:

三 點選率模型auc計算方法 

       如上圖,以兩個分桶為例,每個分桶計算的AUC為圖中的陰影部分。全局AUC部分需要補充P3部分的面積,等于前i-1個桶的sum(click)乘以每i個桶的noclick。

       整體的AUC就是曲線下的面積除以曲線的起點、終點錨定矩型的面積。

步驟

1按照pctr聚合 sum_show和sum_clk;

2樣本按照pctr排序;

3依次對每個樣本,計算noclk和clk圍成對小梯形對面積。

       代碼:

本文轉自 bxst 51CTO部落格,原文連結:http://blog.51cto.com/13013670/1943966

繼續閱讀