普遍预测CTR不准,需要校准。例如。boosted trees and SVM预測结果趋于保守。即预測的概率偏向于中值;而对于NaiveBayes预測的概率,小概率趋于更小。大概率趋于更大。经常使用的校准方法有Binning和Pair‐Adjacent
Violators (PAV);以下分别说说这两种方法。

Binning思想比較简单,也easy实现。

须要说明的是,通常校准算法不不过将概率校准为还有一概率。而是广义地将一分类器的输出score(比如SVM的输出)校准为一概率;这里的score在本文中指的就是预估的点击率CTR。

採用以上方法就能够得到每一个bin的平均输入概率和输出概率(输入输出都是相对于算法而言的)。

以下是我针对1kw曝光量的測试集得到的每一个bin输入输出概率:

7.88491695029e-08       9.80392156863e-05       4|50000
5.4510560119e-07 0.000274509803922 13|50000
1.35458085469e-06 0.000372549019608 18|50000
2.33257130656e-06 0.000588235294118 29|50000
3.39343704862e-06 0.000313725490196 15|50000
4.91818880101e-06 0.000352941176471 17|50000
6.69217711e-06 0.000313725490196 15|50000
8.65811344814e-06 0.000392156862745 19|50000
1.00954604284e-05 9.80392156863e-05 4|50000
1.14438087348e-05 0.00021568627451 10|50000
1.30646586671e-05 0.000196078431373 9|50000
1.50354239562e-05 0.000156862745098 7|50000
1.75724883698e-05 0.000235294117647 11|50000
2.012701573e-05 0.000196078431373 9|50000
2.25293057122e-05 0.000254901960784 12|50000
2.47121329232e-05 0.000294117647059 14|50000
2.68149995297e-05 0.000235294117647 11|50000
2.87109118589e-05 0.000235294117647 11|50000
3.03836824801e-05 0.000274509803922 13|50000
3.27245870019e-05 0.000450980392157 22|50000
3.51748897506e-05 0.000274509803922 13|50000
3.7623296079e-05 0.000352941176471 17|50000
4.03544768064e-05 0.000490196078431 24|50000
。。。

这仅仅是前面一些片段,第一列为每一个bin的平均预估点击率,第二列是校准的点击率,第三列为校准时分子分母的值(这里就是点击量和曝光量),这里每一个bin的总量均为50000。对整个每一个bin的平均预估点击率和校准点击率画出散点图为:



能够看出两个点击率是相关的。这样看还看不出详细什么关系,画出对数图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG1pbmdfMDg=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" align="middle" alt="">

能够非常明显地看出平均预估点击率大于0.0001时。平均预估点击率的对数与校准点击率的对数是呈线性关系,

logy = alogx + b                  得到y = cx^a, 预计出參数c和a就可以。

对于平均预估点击率小于0.0001时,能够简单地使用线性回归求出方程。

有了这两个方程就能够对随意的点击率进行校准了。

当然,我看也有人将以上平均预估点击率划分成若干区间0 &#20; < v1 < v2 < : : : < vn+1 <&#20; 1,对随意的点击率进行查找所属区间(vi,vi+1),採用线性插值得到的校准点击率为  α p(vi) + (1 -
α )p(vi+1)。

1.将score由大到小排序,对于随意两个相邻的score(i)和score(j)。若它们相应的样本属于不同类,则我们希望样本i属于正类,样本j属于负类

2.对于随意两个相邻score,若上述条件不满足,则令这两个score所定义区间相应的后验概率为score(i)和score(j)的均值。

3.对排序后的score依照上述规则进行一次“扫描”(由小到大或由大到小均可),直到没有变化为止,即完毕了PAV

python-sklearn包中含有http://scikit-learn.org/stable/modules/generated/sklearn.isotonic.IsotonicRegression.html#sklearn.isotonic.IsotonicRegression 
能够直接调用:

from sklearn.isotonic import IsotonicRegression as IR

ir = IR()
ir.fit( p_train, y_train )
p_calibrated = ir.transform( p_test ) # or ir.fit( p_test ), that's the same thing

參考资料:

http://fastml.com/classifier-calibration-with-platts-scaling-and-isotonic-regression/

http://scikit-learn.org/stable/modules/generated/sklearn.isotonic.IsotonicRegression.html#sklearn.isotonic.IsotonicRegression

http://wan.poly.edu/KDD2012/docs/p768.pdf

CTR校准的更多相关文章

  1. 美团DSP

    https://blog.csdn.net/LW_GHY/article/details/71455535 ADX出价调整, 预估ctr抽样后调整还原 2. 动态调整报价在DSP的报价环节,点击率预估 ...

  2. 负样本采样及bias校准、ctr平滑

    参考:https://zhuanlan.zhihu.com/p/31529643 在CTR预估中,负样本采样是一种常见的特征工程方法.一般CTR预估的原始正负样本比可能达到1:1000~1:10000 ...

  3. CTR点击率校准

    1. 概述 广告CTR预估过程中,正负样本比例差距较大,需要采样,但是采用后模型训练的结果是有偏的. 2. 校准方式 用逻辑回归作为激活函数

  4. 计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践

    计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践 2018年06月13日 16:38:11 轻春 阅读数 6004更多 分类专栏: 机器学习 机器学习荐货情报局   版 ...

  5. oCPC中转化率模型与校准

    翻看日历时间已经来到了2021年,也是共同战役的第二年,许久没有更新文章了,在与懒惰进行过几次斗争都失利之后,今天拿出打工人最后的倔强,终于收获了一场胜利.闲话不多说,今天咱们重点聊聊oCPC中转化率 ...

  6. 项目 CTR预估

    项目和数据介绍 给定查询和用户信息后预测广告点击率 搜索广告是近年来互联网的主流营收来源之一.在搜索广告背后,一个关键技术就是点击率预测-----pCTR(predict the click-thro ...

  7. 【项目】百度搜索广告CTR预估

    -------倒叙查看本文. 6,用auc对测试的结果进行评估: auc代码如下: #!/usr/bin/env python import sys def auc(labels,predicted_ ...

  8. HTML 5 背离贪吃蛇 写成了类似于屏幕校准

    中间写了改 改了写 还是没做出自己满意的效果 ,看来自己的确不是一个走前端的料子.当然h5还是学一点好一点 具体说来 就是 在canvas 的画布中 鼠标点击后画上一个圆形 然后就有随机的在画布上面出 ...

  9. Google在KDD2013上关于CTR的一篇论文

    最近在做CTR,刚好Google在KDD发了一篇文章,讲了他们的一些尝试,总结一下: 先是一些公式的符号说明: 一.优化算法 CTR中经常用Logistic regression进行训练,一个常用的L ...

随机推荐

  1. php session 管理

    function do_login(){ //获取用户名和密码信息,和数据库中比对 echo 111111111; dump($_POST); dump($_SESSION); echo 222222 ...

  2. ExtJs4 笔记(1) ExtJs大比拼JQuery:Dom文档操作

    现在主流的JS框架要数ExtJs和JQuery应用的比较广泛.JQuery属于轻量级的,一般做网站应用比较常见,可见块头小的优势.ExtJs比较庞大,它除了对基本的JS语法和HTML DOM操作方式的 ...

  3. IBinder在进程之间传递一个对象的形式(一)

    主张 什么时候service通常被称为远程时的,用到aidl来定一个接口供service和client来使用,这个事实上就是使用Binder机制的IPC通信.当client bind service成 ...

  4. hdu 4039 The Social Network

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4039 题目分类:字符串+bfs 题意:给一个人际关系图,根据关系图,给一个人推荐一个人认识 题目分析: ...

  5. delphi中用代码实现注册Ocx和Dll(有点怪异,使用CallWindowProc来调用指定函数DllRegisterServer)

    在windows系统中,可以通过Regsvr32来实现注册ocx或者dl, 编程时,调用Regsvr32来注册,却不能正常执行.尤其是在Win7系统中,需要管理员身份才能运行. 使用下面的代码则能正常 ...

  6. <Win32_14>__win32控件(2)__教你自学掌握所有控件的玩法

    学习win32 API 编程,我们应该善于利用微软给我们提供的一些辅助工具,例如大家都知道的MSDN.SPY++等等. 今天在讲述之前呢,先给大家介绍一个很有用的工具——Control Spy——它的 ...

  7. jquery中实现全选按钮

    <html>   <head>   <script type='text/javascript' src='js/jquery-1.5.1.js'></scr ...

  8. SetCapture ReleaseCapture

    函数功能:该函数在属于当前线程的指定窗体里设置鼠标捕获.一旦窗体捕获了鼠标,全部鼠标输入都针对该窗体,不管光标是否在窗体的边界内.同一时刻仅仅能有一个窗体捕获鼠标.假设鼠标光标在还有一个线程创建的窗体 ...

  9. div仿checkbox表单样式美化及功能

    div仿checkbox表单样式美化及功能(checkbox的样式不好看)素材在底部: 效果图: window.css .bj { position: absolute; top: 0; left: ...

  10. 基于SIFT+Kmeans+LDA的图片分类器的实现

    原地址:http://www.cnblogs.com/freedomshe/archive/2012/04/24/2468747.html 题记:2012年4月1日回到家,南大计算机研究僧复试以后,等 ...