最近在做广告渠道的数据分析项目,对广告数据分析方面的资料接触得颇多,我感叹于概率统计学的强大,业务中的众多数据问题,都可追溯至某个概率统计公式。
不是985 211毕业的我,达不到知乎的平均智商水平,但却是一枚对数据分析颇感兴趣的数据分析师,随着工作经历的丰富,视数据分析为艺术,愿意将每周发生的数据分析相关的内容分享出来,试着做一个摆渡人。
来说下朴素贝叶斯公式,也即条件概率公式P(Y|X)=P(X|Y)*P(Y)/P(X)。
bayes的3个应用场景:
一 推荐算法中计算物品-物品相似矩阵
用户对某物品的评分未知的情况下,可以给出对该物品的不同评分下的概率,确定用户对该物品的最大可能评分。
举例说明:
大写字母表示用户,小写字母表示物品,交叉点表示某用户对物品的评分
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可以适当减少该测试的数量。
举例如下:
表中为受众测试的广告效果,那么男&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%。