CTR预估评价指标介绍
1 离线指标
1.1 LogLoss
1.1.1 KL散度
logloss使用KL散度来计算。设样本的真实分布为P,预测分布为Q,则KL散度定义如下:

这里可以通俗地把KL散度理解为相同事件空间里两个概率分布的相异情况。KL散度越小,预测分布越接近真实分布。
KL散度的物理意义是:使用分布Q来对真实分布为P的事件进行编码,导致平均编码长度增加了多少。具体解释可见百度和知乎。
1.1.2 CTR中KL散度的计算
CTR预估中,上面的概率分布为二项分布。设真实的点击率是tctr,预测的点击率是pctr。因此真实的二项分布P是(tctr,1-tctr),预测的二项分布Q是(pctr,1-pctr)。因此KL散度公式可以写成如下:
tctr可以通过统计得出,表示为 tctr = click / impression。则KL散度可以变形如下:

因此,计算logloss的伪代码如下:

1.2 AUC
1.2.1 二分类的常用评价指标
CTR预估是一个二分类问题。二分类问题的评价指标有FP rate,TP rate,准确率accuracy,精确率precision,召回率recall,分别定义如下:


其中,precision表示的是预测为阳性的样本中有多少是预测对的,recall表示有多少阳性样本被预测了出来,这二者通常是此消彼长,需要根据具体场合看用哪个指标。
accuracy表示预测准确的占所有的样本的比例。
Roc图表示的横坐标是Fp rate, 纵坐标是Tp rate。一个分类器的Fp rate越小,Tp rate越大,这个分类器就越好,对应在ROC图中就是靠近左上角。最完美的点是(0,1),最差的点是(1,0)。
如上所示,D是最好的,然后是A,B,然后是C,然后是F。AB之间比较就不好说了。
1.2.2 ROC曲线
由于预测值是一个评分,还要通过选定一个阈值来将它划分成1还是0。我们按照预测值对样本降序排列,并且从上到下以预测值为阈值:

可以看出如果阈值选的不同,TP rate和FP rate是不同的。每选一个阈值,就能在ROC图上确定一个点,这样就能得到一条ROC曲线:

1.2.3 AUC
AUC是ROC曲线与横坐标轴围成的面积。数学上可以证明,AUC值等于一个概率,即在前面已经排序的样本列表中,随机选取一个正样本,再随机选取一个负样本,正样本排在负样本之前的概率。即AUC表征了正样本排在负样本前面的能力,并且与阈值选取无关,而与模型本身有关。

1.2.4 AUC的计算
CTR预估评价指标介绍的更多相关文章
- 【项目】搜索广告CTR预估(一)
本文介绍CTR相关基础知识. 一.广告投放系统 广告系统包含多个子系统.除了上图所示的广告投放系统外,还包含商业系统(广告库的获得),统计系统(点击展示日志的获得)等. 广告投放系统主要是面向用户的, ...
- (1)搜索广告CTR预估
https://www.cnblogs.com/futurehau/p/6181008.html 一.广告投放系统 广告系统包含多个子系统.除了上图所示的广告投放系统外,还包含商业系统(广告库的获得) ...
- CTR预估中的贝叶斯平滑方法(一)原理及实验介绍
1. 背景介绍 广告形式: 互联网广告可以分为以下三种: 1)展示广告(display ad) 2)搜索广告(sponsored search ad) 3)上下文广告(contextual ad) ...
- 【项目】百度搜索广告CTR预估
-------倒叙查看本文. 6,用auc对测试的结果进行评估: auc代码如下: #!/usr/bin/env python import sys def auc(labels,predicted_ ...
- 【项目】搜索广告CTR预估(二)
项目介绍 给定查询和用户信息后预测广告点击率 搜索广告是近年来互联网的主流营收来源之一.在搜索广告背后,一个关键技术就是点击率预测-----pCTR(predict the click-through ...
- Kaggle : Display Advertising Challenge( ctr 预估 )
原文:http://blog.csdn.net/hero_fantao/article/details/42747281 Display Advertising Challenge --------- ...
- 计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践
计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践 2018年06月13日 16:38:11 轻春 阅读数 6004更多 分类专栏: 机器学习 机器学习荐货情报局 版 ...
- 广告点击率 CTR预估中GBDT与LR融合方案
http://www.cbdio.com/BigData/2015-08/27/content_3750170.htm 1.背景 CTR预估,广告点击率(Click-Through Rate Pred ...
- CTR预估中的贝叶斯平滑方法及其代码实现
1. 背景介绍 广告形式: 互联网广告可以分为以下三种: 1)展示广告(display ad) 2)搜索广告(sponsored search ad) 3)上下文广告(contextual ad) ...
随机推荐
- 由于log太多导致ubuntu硬盘空间满了,进入不了系统解决办法
具体现象是在图形界面输入用户名和密码之后,再次提示需要输入用户名和密码. 步骤一:按快捷键进入命令行界面.ctrl+alt+f1. 步骤二:清空文件 clear log cd /var/log sud ...
- time.c 的Java实现(从timestamp计算年月日时分秒等数值)
time.c的Java实现 public class GMT { public static final int EPOCH_YEAR = 1970; public static final int[ ...
- (原创)JAVA多线程二线程池
一,线程池的介绍 线程池包括一下三种: 线程池名称 创建方法 特点 其他 固定大小线程池 ExecutorService threadpool = Executors.newFixedThreadPo ...
- C++学习笔记(2)
本学习笔记是C++ primer plus(第六版)学习笔记.是C++学习笔记(1)的后续.复习C++基础知识的可以瞄瞄. 转载请注明出处http://www.cnblogs.com/zrtqsk/p ...
- phabricator在mac上的搭建
环境:OS X Yosemite 10.10.5 前提:phabricator主要是由php写的,而且是以website方式运行的,所以mac上要先安装好 php + nginx(或apache) + ...
- [ASP.NET 5]终于解决:Unable to load DLL 'api-ms-win-core-localization-obsolete-l1-2-0.dll'
11月12日,惊喜地发现SqlClient(System.Data.SqlClient.dll)跨平台了(对应的nuget包包是runtime.unix.System.Data.SqlClient), ...
- CPU使用率终于正常了——记一次订餐系统事故处理
引子 经过漫长的等待,儿子终于出生了.欣喜之余,就是各种手足无措,顾此失彼了.因为不懂,心里总是慌慌的,有点小毛病,恨不得一步就到医院. 婆媳育儿观念的差异,让心乱如麻的我,又成了风箱里的老鼠,两个不 ...
- LeetCode-62-Unique Paths
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). The ...
- IntelliJ工程导入
如果build.gradle中的sourceCompatibility=1.5,那么无法使用钻石运算符,如下语句报错. List<String>a=new ArrayList<> ...
- django request对象和HttpResponse对象
HttpRequest对象(除非特殊说明,所有属性都是只读,session属性是个例外)HttpRequest.scheme 请求方案(通常为http或https)HttpRequest.body 字 ...