1、CTR:

(1)几个概念:

  impression(展示):用户看到该广告的次数。也就是一个广告被显示了多少次,它就计数多少。比如:打开网站的一个页面,网站上的所有广告就被显示了一次,每个广告增加1个,如果刷新就再增加一个。

  click(点击):用户点击该广告的次数

  CTR:click through rate 广告点击率

  CTR = click次数 / impression次数

(2)任务:

  CTR预估任务:给定用户(user),给定一个商品(product),给定了一定的环境,来看用户会不会买这个商品,买该商品的概率有多高;或者说给用户推荐一个电影,用户会不会看这个电影。

这里要训练一个模型,X表示训练数据的输入,即各种特征,Y表示输出,Y的取值为1到5。

(3)应用:

  计算广告、推荐系统、信息流排序。

  计算广告:比如很多广告,用户会点击哪些?

  推荐系统:推荐系统可以转化成CTR预估,比如电影推荐,用户会不会看?

  信息流排序:百度头条微博都在做信息流,比如微博中你关注了很多人,他们会有很多信息发布出来,则优先给你展示哪些内容你可能会点呢?这涉及到怎么为那些推送给你的信息流进行重新排序。

2、广告中几种计费方式:

CPM:不管用户对该广告有任何行为(点击不点击),广告只要曝光就得收费,一般在游戏场景下用的比较多。

CPC:广告曝光后根据用户点击数量来收费,一些搜索引擎常用的收费方式。

CPA:代价比较大,用户必须有行为,也就是用户必须点击进去然后下订单进行收费。

3、CTR

CTP=click次数 / impression次数,比如说将CTR与price相乘作为广告排序的依据。

4、基于LR的CTR预测

LR的优点:简单、可解释性强(像DNN难以解释)(若出问题可以查看是数据出问题还是模型出问题)

5、论文Practical Lessons from Pre dicting Clicks on Ads at Facebook

  论文结合了GBDT和LR来预测CTR,评价指标为NE和Calibration。

(1)评价指标:

  ① NE为归一化熵:公式为,其中分子为LR的损失函数,yi为样本i的label(值为1/-1),pi为样本i的点击预测概率。分母为原样本数据集平均损失(平均信息熵),p为正样本的概率。NE的作用:在模型的帮准下,样本剩余的不确定性和没有模型时样本的不确定性的比值。NE值越低越好。

  ② Calibration:等于预测点击数 / 实际点击数,值越大越好。

(2)模型:

  ①两种在线学习方法:基于LR的SGD、BOPR

    SGD:

    

    BOPR:基本思想是参数w是一个先验分布为正态分布的分布,参数为u、σ;

    

    在贝叶斯框架下,每一个样本都是在修正对应的分布参数u、σ。每轮迭代时对应的更新公式为:

    

  ②决策树

  前提:随着特征的增加,特征组合变得很困难,特征组合是在特征离散化之后做的,故组合之后特征可能会爆炸,造成维度灾难。所以一种解决特征组合问题的方案被提出。GBDT+LR。

  GBDT基本思路:利用树模型的组合特性来自动做特征组合,即使用了GBDT的特征组合能力。整体框架如下:

GBDT可以看做是对特征一种组合编码的过程,最后的LR才是最终的分类(回归)模型。

  

  

数据分析例子-------CTR1的更多相关文章

  1. Hadoop第10周练习—Mahout部署及进行20newsgroup数据分析例子

    :搭建Mahout环境 :运行20newsgroup 内容 运行环境说明 1.1 硬软件环境 线程,主频2.2G,6G内存 l  虚拟软件:VMware® Workstation 9.0.0 buil ...

  2. Python数据分析------例子1(信用卡欺诈)

    1.读取数据 data=read_csv(path) data.head() #画图(查看class即分类的数据条形图),函数sort_index()是将dataframe按照行索引来排序输出值 co ...

  3. Javaweb 第15天 web练习和分页技术

    第15天 web练习和分页技术 复习day14内容: 学习新技术的思路? 分析功能的思路? 使用queryRunner操作数据库的步骤? ResultSetHandler接口常用实现类(三个重点)? ...

  4. 【R与数据库】R + 数据库 = 非常完美

    前言 经常用R处理数据的分析师都会对dplyr包情有独钟,它强大的数据整理功能让原始数据从杂乱无章到有序清晰,便于后期进一步的深入分析,特别是配合上数据库的使用,更是让分析师如虎添翼,轻松搞定Exce ...

  5. 第十三章:Python の 网络编程进阶(二)

    本課主題 SQLAlchemy - Core SQLAlchemy - ORM Paramiko 介紹和操作 上下文操作应用 初探堡垒机 SQLAlchemy - Core 连接 URL 通过 cre ...

  6. 《利用python进行数据分析》读书笔记 --第一、二章 准备与例子

    http://www.cnblogs.com/batteryhp/p/4868348.html 第一章 准备工作 今天开始码这本书--<利用python进行数据分析>.R和python都得 ...

  7. 关于《Spark快速大数据分析》运行例子遇到的报错及解决

    一.描述 在书中第二章,有一个例子,构建完之后,运行: ${SPARK_HOME}/bin/spark-submit --class com.oreilly.learningsparkexamples ...

  8. 如何在美国公司写project plan 邮件--以hadoop安装和Mahout数据分析为例子

    Hi, XXX (boss name) Project Title:  Hadoop installation and Data analysis based on Mahout Deliverabl ...

  9. R与数据分析旧笔记(二)随机抽样的一个综合例子

    题目:模拟产生统计专业同学的名单(学号区分),记录数学分析.线性代数.概率统计三科成绩,然后进行一些统计分析 > num=seq(10378001,10378100) > num [1] ...

随机推荐

  1. btrfs

    https://docs.docker.com/storage/storagedriver/btrfs-driver/ $ sudo cat /proc/filesystems | grep btrf ...

  2. C - A Simple Problem with Integers

    C - A Simple Problem with Integers POJ - 3468   思路:线段树区间修改区间查询.又出现了 C++ WA    G++ AC的尴尬局面. #include& ...

  3. [Cypress] Find and Test Focused Input with Chrome’s DevTools in Cypress

    In this lesson, we’ll add tests that finds a focused input. We’ll use Chrome’s dev tools from inside ...

  4. TCP/IP解析(一):TCP/IP的工作方式

    本文包括下面内容: 1.TCP/IP协议系统 2.OSI模型 3.数据包 4.TCP/IP的交互方式 1.TCP/IP模型的协议层 分为四层: 网络訪问层:提供与物理网络连接的接口.依据硬件的物理地址 ...

  5. JAVA经常使用数据结构及原理分析

    前不久面试官让我说一下怎么理解java数据结构框架,之前也看过部分源代码,balabala讲了一堆,如今总结一下. java.util包中三个重要的接口及特点:List(列表).Set(保证集合中元素 ...

  6. POJ3570 Fund Management 动态规划

    题目大意 Frank从个人投资者获得了c美元的资金,可用于m天的投资.Frank可以对n(n<=8)支股票进行投资.对于每一支股票:都有一个交易上限si,表示一天最多能交易的股数:还有一个上限k ...

  7. php 判断字符串包含中文(转)

    $str = "测试中文"; echo $str; echo "<hr>"; //if (preg_match("/^[".ch ...

  8. [xPlugins] jQuery Contextmenu右键菜单

    [2012-04-12] Contextmenu 右键菜单 v0.1 版本发布 [功能] 在特定区域弹出右键菜单 [功能] 可以在弹出右键菜单区域内,再屏蔽某个小区域. [功能] 有两种方式添加右键菜 ...

  9. php word转pdf

    我们知道,PHP语言的合理运用可以帮助我们实现导出Word文档的功能.今天我们将为大家介绍PHP处理Word转PDF的相关实现方法. PHP关键字this指向当前对象指针 PHP self关键字指向类 ...

  10. java异常处理和自定义异常利用try和catch让程序继续下去(回来自己再写个例子试运行下)

    注意:想在catch的参数里使用自定义的异常,则必须先将这个异常抛出才行.(throws是具有抛出异常的能力,并未抛出,throw new MyException是抛出异常,catch是捕获异常,只有 ...