一 背景
首先举个例子:
正样本(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直观概念,任意取一对正负样本,正样本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围成对小梯形对面积。
代码:

