贝叶斯系列——贝叶斯与其他统计流派的区别和联系

作者:沈伟臣

编辑:张 欢

前言

了解概率统计的同学都知道有频率学派和贝叶斯学派两种统计流派,那么频率学派和贝叶斯学派到底有什么区别呢?本篇文章分为三部分,首先介绍几种基本概率模型,然后介绍贝叶斯平滑在广告点击率(CTR)预估中的应用。首先介绍概率统计上的三种基本概率模型。

古典模型

这个模型下,随机实验所有可能的结果是有限的,并且每个基本结果发生的概率是相同的。举例:投掷一枚均匀硬币,结果只有两种(假设硬币没有立起来),正面朝上和反面朝上,那么正面朝上的的概率就是0.5。这是基于古典概率模型的计算。

频率学派

认为待估计参数是某个未知的常量,通过多次试验,统计事件发生的次数占总试验的比值,得到待估计参数的值。举例:估算投掷一枚均匀硬币获得正面的概率。我们进行1000次试验,有498次朝上,所以得到正面的概率是0.498。

贝叶斯学派

认为待估计参数不是某个固定的常量,而是一种随机变量(服从某种分布)。关于这个随机变量,我们可以根据常识或其他客观事实对其有一个先验的分布估计(信念),之后根据试验来调整这个分布,最后求得该随机变量的后验分布。 这种思想解决了频率学派试验中当试验次数过少而导致的试验偏差的问题,比如,投掷一枚匀质硬币5次,这5次都是正面朝上,根据频率学派观点,认为硬币投掷正面朝上的概率是P(正面朝上)=5/5=1,这显然是不符合常理的。 举例: 现在定义事件A=(投掷一次硬币正面朝上),B=(投掷5次硬币,5次朝上)。在贝叶斯的框架下,我们根据常识认为投掷硬币正面朝上的概率是0.5,所以我们可以假设这个先验服从参数为Beta(10,10)的分布,然后根据贝叶斯定理可计算出在事件B发生的条件下的A的概率分布为分布Beta(15,10),这个分布的期望值是0.6。通过贝叶斯框架,我们计算出硬币正面朝上的概率仍然是一个接近0.5的值,更加符合我们的常识。(关于Beta分布和后验概率的具体计算会在以后的文章具体介绍) 下图是分别绘制的先验分布Beta(10,10)(蓝色)和后验分布Beta(15,10)(绿色) 。

从哲学的角度讲,频率学派认为概率是客观的,贝叶斯学派则在概率中加入了主观的因素。

在广告转化率预估的预测中,广告对应的历史转化率经常是一个重要的特征。一般而言,某个广告的转化率会围绕一个值上下波动,在使用历史转化率做特征时,如果简单的使用频率学派的转化量除以点击量计算转化率,会发现转化率随着天数的不同会产生巨大的波动,这并不利于模型的训练。如果我们使用贝叶斯平滑,一种简单的做法是使用广告的历史转化率作为先验,并假设其服从Beta分布,假设广告的转化行为服从伯努利分布(事实上这个假设是有偏差的,伯努利分布假设每次事件发生是相互独立,而广告的的转化行为是存在上下文关系的)。那么我们可以根据每天的点击量和转化量来计算转化率的后验分布,并且使用后验分布的均值作为平滑的的转化率。一个简单的平滑函数如下。factor因子为控制平滑程度的参数,其本质是通过改变分布的有效样本量来控制先验和后验的权重的。

/*clicks  点击量list  conversions 转化量list  factor 平滑因子,
该因子越小,结果越平滑*/     

   def gen_smooth_cvr(clicks,conversions,factor=1): 
   smooth_cvr = []   

   sum_a = 0    

   sum_b = 0  

  /*计算先验*/  
   a = conversions.mean()    

   c = clicks.mean()    

   b = c-a       

 /*遍历日志*/

    for conv,clk in zip(conversions,clicks):   

 /*添加后验分布均值到结果列表*/  
    smooth_cvr.append(beta.mean(a+conv,b+(clk-conv)))       
     a += conv        

     b += (clk-conv)        

     a /=factor        

     b/=factor    

     return smooth_cvr 

当使用factor默认参数即factor=1的时,平滑后的结果如下图蓝色折线。可以看到有一点过度平滑了。下面调整factor,令其为1.5。

factor=1时的平滑结果

factor=1.5时的平滑结果。

我们再尝试一下factor=1.25时的平滑结果。

factor =1.25时的平滑结果。

这时可以使用其作为平滑后的转化率特征进行训练。

理解了贝叶斯系列了吗?

原文发布于微信公众号 - 机器学习算法全栈工程师(Jeemy110)

原文发表时间:2017-08-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

TensorFlow团队:TensorFlow Probability的简单介绍

在2018年TensorFlow开发者峰会上,我们(TensorFlow团队)宣布发布TensorFlow Probability:一种使机器学习研究人员及相关...

965
来自专栏CreateAMind

图像结构样式分开生成的生成模型论文代码

Generative Image Modeling using Style and Structure Adversarial Networks

522
来自专栏专知

【重磅】深度学习顶会ICLR2018评审结果出炉,一文快速了解评审分析简报和评分最高的十篇论文

【导读】ICLR,全称为「International Conference on Learning Representations」(国际学习表征会议),201...

3105
来自专栏AI研习社

GAN 的理解与 TensorFlow 的实现

前言 本文会从头介绍生成对抗式网络的一些内容,从生成式模型开始说起,到 GAN 的基本原理,InfoGAN,AC-GAN 的基本科普,如果有任何有错误的地方...

3228
来自专栏人工智能

迷你规模的Metropolis-Hastings

过去的几年里,我们经历了一场巨大的数据洪流,这在人工智能兴趣激增浪潮中扮演了关键角色。下面是部分大型数据库列表:

1967
来自专栏新智元

【一文看尽200篇干货】2018最新机器学习、NLP、Python教程汇总!

【新智元导读】本文收集并详细筛选出了一系列机器学习、自然语言处理、Python及数学基础知识的相关资源和教程,数目多达200种!来源既包括斯坦福、MIT等名校,...

1184
来自专栏Coding迪斯尼

使用预先训练网络和特征抽取大力提升图像识别率

神经网络在项目实践中遇到的一大问题是数据不足。任何人工智能项目,在数据不足面前都会巧妇难为无米之炊,算法再精巧,只要数据量不足,最后的效果都不尽如人意,我们目前...

855
来自专栏机器之心

资源 | 谷歌带来GAN入门神器:浏览器上运行的可视化工具GAN Lab

用浏览器打开这个网页,就可以开始耍了:https://poloclub.github.io/ganlab/

371
来自专栏懒人开发

(8.5)James Stewart Calculus 5th Edition:Probability

微积分在随即行为分析上扮演了一个角色。 例如,某个年龄段人的胆固醇水平,成年女性随机的高度 等 这里叫做 **continuous random varia...

903
来自专栏AI科技大本营的专栏

福利 | 图像的语义分割—CRF通俗非严谨的入门

本文节选自《深度学习轻松学》第九章—图像的语义分割,作者冯超。 福利提醒:想要获得本书,请在评论区留言,分享你的深度学习经验,第8、18、28、38以及48楼...

4506

扫码关注云+社区