一 背景

      首先举个例子:
                         正样本(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围成对小梯形对面积。
       代码:
 
 
 

点击率模型AUC的更多相关文章

  1. GBDT与LR融合提升广告点击率预估模型

    1GBDT和LR融合      LR模型是线性的,处理能力有限,所以要想处理大规模问题,需要大量人力进行特征工程,组合相似的特征,例如user和Ad维度的特征进行组合.      GDBT天然适合做特 ...

  2. Kaggle实战——点击率预估

    https://blog.csdn.net/chengcheng1394/article/details/78940565 原创文章,转载请注明出处: http://blog.csdn.net/che ...

  3. 广告点击率 CTR预估中GBDT与LR融合方案

    http://www.cbdio.com/BigData/2015-08/27/content_3750170.htm 1.背景 CTR预估,广告点击率(Click-Through Rate Pred ...

  4. 消息点击率翻倍的背后——闲鱼无侵入可扩展IFTTT系统

    一.面临问题 在闲鱼生态里,用户之间会有很多种关系.其中大部分关系是由买家触发,联系到卖家,比如买家通过搜索.收藏.聊天等动作与卖家产生联系:另外一部分是平台与用户之间的关系.对这些关系分析之后我们发 ...

  5. 高点击率的Banner设计14招

    英文原文:14 design tips for more clickable banner ads 译文:http://www.uisdc.com/banner-click-rate 虽然互联网发展迅 ...

  6. CTR点击率预估干货分享

    CTR点击率预估干货分享 http://blog.csdn.net/bitcarmanlee/article/details/52138713

  7. superset可视化不同算法的点击率

    1. 首先我们通过superset的SQL Editor来编辑语句,语句没有写完整 2. 得到的结果为: 3. 然后点击Visualize,如图所示: 4. 因为要在图中显示不同算法的点击率,需要把d ...

  8. CTR点击率简介

    点击率 简介 在搜索引擎(百度.谷歌)中输入关键词后进行搜索,然后按竞价等因素把相关的网页按顺序进行排列出来,然后用户会选择自己感兴趣的网站点击进去:把一个网站所有搜索出来的次数作为总次数,把用户点击 ...

  9. 十篇TED点击率最高演讲,带你重新认识大数据与人工智能

    我们通常过于专注于机器学习算法的实现,倾向于忽略这种技术本身的一些重要问题:如未来的应用和政治后果.在这篇文章中,我们从非常受欢迎的非营利组织TED上收集了一系列的视频(并非关注于选择什么语言或算法来 ...

随机推荐

  1. Java中线程的使用 (2)-多线程、线程优先级、线程睡眠、让步、阻塞

    Java中线程的使用 (2)-多线程.线程优先级.线程睡眠.让步.阻塞 (一)多线程使用方法 说明:创建每个新的线程,一定要记得启动每个新的线程(调用.start()方法) class Xc3 ext ...

  2. Ubuntu14.04安装samba

    Ubuntu14.04安装samba 按照惯例,首先介绍Samba.Samba是在Linux系统上实现的SMB(Server Messages Block,信息服务块)协议的一款免费软件.它实现在局域 ...

  3. spring boot无法启动,或者正常启动之后无法访问报404的解决办法

    以前用spring boot都是用idea的自动创建,或者是用的Jhipster创建的,就没有深究怎么去搭建.但是今天晚上心血来潮,想自己搭一个demo来整合一些技术,于是就花一点时间来手动搭.因为今 ...

  4. Google Android Studio Kotlin 开发环境配置

    Google 近日开发者大会宣布Kotlin成为Android开发的第一级语言,即Android官方开发语言,可见Google对Kotlin的重视,本文就介绍一下Android Studio下的Kot ...

  5. 唯独ie浏览器缓存ajax请求

    用fiddler调试http请求,在ie浏览器下,如果请求命中缓存,fiddler不会包含该请求.但是在chrome下会包含缓存的请求,Result显示为304. ie浏览器还会缓存通过ajax请求的 ...

  6. SpringMVC实现账号只能在一处登陆

    一.问题引导 在Web开发中,实现一个账号只能在一处登陆有两种形式:1.当某个账号在某处登陆后,如果再在其他处登陆,将前一个账号挤掉:2.当某个账号登陆后,此账号在其他设备登陆提示已经登陆,无法登陆. ...

  7. DATA VISUALIZATION – PART 1

    Introduction to Data Visualization – Theory, R & ggplot2 The topic of data visualization is very ...

  8. 【Netty】ChannelHandler和codec

    一.前言 前面学习了Netty的codec框架,下面接着学习ChannelHandler与codec之间的关联. 二.ChannelHandler和codec Netty为不同的协议提供了处理器和编解 ...

  9. Java经典编程题50道之二十六

    请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母. public class Example26 {    public static void main(Stri ...

  10. IE低版本兼容的感悟

    2017-04-09 曾经折磨一代人的兼容问题,如今也在同样折磨着我们,明明可以做JS判断来避免对ie低版本的兼容,但是却还是耐心的做着兼容,你可能会问这是为什么, 我们调的不是兼容,是整整一代人的情 ...