最近在做广告渠道的数据分析项目,对广告数据分析方面的资料接触得颇多,我感叹于概率统计学的强大,业务中的众多数据问题,都可追溯至某个概率统计公式。

不是985 211毕业的我,达不到知乎的平均智商水平,但却是一枚对数据分析颇感兴趣的数据分析师,随着工作经历的丰富,视数据分析为艺术,愿意将每周发生的数据分析相关的内容分享出来,试着做一个摆渡人。

来说下朴素贝叶斯公式,也即条件概率公式P(Y|X)=P(X|Y)*P(Y)/P(X)。

bayes的3个应用场景:

一 推荐算法中计算物品-物品相似矩阵

用户对某物品的评分未知的情况下,可以给出对该物品的不同评分下的概率,确定用户对该物品的最大可能评分。

举例说明:




贝叶斯数据分析 约翰PDF 贝叶斯数据分析第三版pdf_朴素贝叶斯


大写字母表示用户,小写字母表示物品,交叉点表示某用户对物品的评分

P(C对b的评分)

=P(b的评分|其他物品评分a=4,c=3,d=1,e=3,f=1)

=P(a=4,c=3,d=1,e=3,f=1|b的评分)*P(b的评分)/P(其他物品评分a=4,c=3,d=1,e=3,f=1)

=P(a=4|b的评分)*P(c=3|b的评分)*P(d=1|b的评分)*P(e=3|b的评分)*P(f=1|b的评分)*P(b的评分)/P(其他物品评分a=4,c=3,d=1,e=3,f=1)

PS:对于C对b的评分为1 2 3 4 5的概率来讲,公式中的分母对概率大于并不产生影响,在下面的计算中,可忽略分母;

对于朴素贝叶斯来讲,各项间相互独立.

P(C对b的评分=1)=P(b=1|a=4,c=3,d=1,e=3,f=1)

=P(a=4,c=3,d=1,e=3,f=1|b=1)*P(b=1)

=(1/3*0/3*0/3*1/3*1/3)*3/7

P(C对b的评分=2)=P(b=2|a=4,c=3,d=1,e=3,f=1)

=P(a=4,c=3,d=1,e=3,f=1|b=2)*P(b=2)

=P(a=4|b=2)*P(c=3|b=2)*P(d=1|b=2)*P(e=3|b=2)*P(f=1|b=2)*P(b=2)

=(1/2*1/2*0/2*0/2*0/2)*2/7

P(C对b的评分=3)=P(b=3|a=4,c=3,d=1,e=3,f=1)

=P(a=4,c=3,d=1,e=3,f=1|b=3)*P(b=3)

=P(a=4|b=3)*P(c=3|b=3)*P(d=1|b=3)*P(e=3|b=3)*P(f=1|b=3)*P(b=3)

P(C对b的评分=4)=P(b=4|a=4,c=3,d=1,e=3,f=1)

=P(a=4,c=3,d=1,e=3,f=1|b=4)*P(b=4)

=P(a=4|b=4)*P(c=3|b=4)*P(d=1|b=4)*P(e=3|b=4)*P(f=1|b=4)*P(b=4)

P(C对b的评分=5)=P(b=5|a=4,c=3,d=1,e=3,f=1)

=P(a=4,c=3,d=1,e=3,f=1|b=5)*P(b=5)

=P(a=4|b=5)*P(c=3|b=5)*P(d=1|b=5)*P(e=3|b=5)*P(f=1|b=5)*P(b=5)

将以上5个概率值比较,概率大的为最可能的评分。

另外需要说明的是,对于概率为0的情况,我们可以采用拉普拉斯修正,将分子加1,分母加类别个数,这样可保证概率>0。

二 邮件或短信分类

收件箱或短信中垃圾推广信息颇多,可用来识别垃圾email/message。

为了说明算法本身,举个例子:

垃圾邮件1:discount,ads,activity;垃圾邮件2:daily,come,share ;

正常邮件1:reply,query,activity;正常邮件2:come,reply,work;正常邮件3:share,query,come

要求对该邮件分类:daily,activity,come

P(邮件类型|daily,activity,come)

=P(daily,activity,come|邮件类型)*P(邮件类型)/P(daily,activity,come)

=P(daily|邮件类型)*P(activity|邮件类型)*P(come|邮件类型)*P(邮件类型)/P(daily,activity,come)

PS:因为邮件分类来讲,公式中的分母对概率大于并不产生影响,在下面的计算中,可忽略分母;对于朴素贝叶斯来讲,各项间相互独立.

P(正常邮件|daily,activity,come)

=P(daily,activity,come|正常邮件)*P(正常邮件)

=P(daily|正常邮件)*P(activity|正常邮件)*P(come|正常邮件)*P(正常邮件)

=0/3*1/3*2/3*3/5

P(垃圾邮件|daily,activity,come)

=P(daily,activity,come|垃圾邮件)*P(垃圾邮件)

=P(daily|垃圾邮件)*P(activity|垃圾邮件)*P(come|垃圾邮件)*P(垃圾邮件)

=1/2*1/2*1/2*2/5

将P(正常邮件|daily,activity,come) 与P(垃圾邮件|daily,activity,come)比较,概率大的为分类结果。

对于概率为0的情况,我们同第一种处理方式,采用拉普拉斯修正。

三 确定信息流广告的受众群体

A/B测试对广告优化师的重要性可见一斑,那么bayes可以适当减少该测试的数量。

举例如下:


贝叶斯数据分析 约翰PDF 贝叶斯数据分析第三版pdf_朴素贝叶斯_02


表中为受众测试的广告效果,那么男&23-27岁的受众效果怎么样呢,我们可以用贝叶斯来计算下,

P(转化=1|男,23-27岁)=P(男,23-27岁|转化=1)*P(转化=1)/P(男,23-27岁)
 =P(男|转化=1)*P(23-27岁|转化=1)*P(转化=1)/P(男,23-27岁)
 =(340/850*350/850*850/19000)/P(男,23-27岁)
P(转化=0|男,23-27岁)=P(男,23-27岁|转化=0)*P(转化=0)/P(男,23-27岁)
 =P(男|转化=0)*P(23-27岁|转化=0)*P(转化=0)/P(男,23-27岁)
 =9660/18150*4650/18150*18150/19000/P(男,23-27岁)
P(转化=1|男,23-27岁)+P(转化=0|男,23-27岁)=1

将以上3个式子结合,计算出P(转化=1|男,23-27岁)=0.53%。