欢迎光临散文网 会员登陆 & 注册

广告数据分析之信息流定向朴素贝叶斯算法

2023-06-14 23:51 作者:老邓营销家园  | 我要投稿

前段时间,邓老师在艾课网讲了一节公开课,主题是《广告数据分析实战与案例演示》,课程的主要内容是围绕着广告数据分析到底分析什么、常用的分析方法、常用工具和EXCEL函数以及实际案例演示来讲的。

数据分析常用方法为例,有趋势分析法、比重分析法、TOP N分析法、四象限法朴素贝叶斯算法、漏斗分析法、多维度拆解分析法、A/B测试分析法、对比分析法、帕累托分析法等等,也有一些朋友是已经看完了课程的,希望可以手把手得教导一下,因为最近都有很多的事情在忙,就用公粽号的文章来重点讲解一下多数人问到的这个信息流定向贝叶斯算法,很多朋友说这个信息流的朴素贝叶斯算法还是理解不太透彻,能不能详细再讲讲,我这里再重新写一下关于这个贝叶斯算法的知识点

贝叶斯算法

其实朴素贝叶斯算法只是个高中知识,只要有印象认真看完这篇文章都很容易能理解,并不高深的,但是确实是挺有用的一个数据分析方法,除了信息流定向问题如推荐系统、广告推荐、受众画像等,我们生活中常见的核酸检验、艾滋病检查、人工智能、图像识别、机器翻译等场景都可以用到的。

看下简单的例子,朱一明老师提过一个数学题,已知一家人有俩孩子,并且已知其中一个孩子是女儿,问另外一个孩子也是女儿的概率是多少?大部分人会认为这个概率是1/2,答案是1/3。这里说的是这俩孩子已经生出来了,不是说已知生了一个孩子是女儿的情况下,另外再生一个女儿的概率。如果孩子还没生,我们都知道生孩子是男是女,那这是独立事件,当然前提我们得知道生男生女的概率,这道题里面只是被假设为是1/2,但俩孩子都生好了,无非就是四种情况,现在你已经知道了,其中一个是孩子是女儿,那么就排除了两个都是男孩的情况,那么就只剩下三种情况,包含至少一个女孩的,那么两个孩子都是女儿的情况,那就只有一种,所以另外一个孩子也是女儿的概率那就是1/3。如果已知这个女儿是老大,那另外一个孩子也是女儿的概率才是1/2,你也可以说已知一个女儿是老二,那么另外一个孩子也是女儿的概率呢,也是1/2,这个1/2其实跟已知生了一个孩子是女儿,第二个孩子还没生,问你第二个孩子生女儿的概率是多少,这其实是一样的,因为在这里生和没生也是代号,表示状态而已,所以是1/2

男生女生

再举个例子,假如你抛硬币100次,其中正面向上60次,反面向上40次,问下一次正面向上的概率多少?如果答案是小于0.5,那就叫做赌徒谬误。假如答案是刚好0.5,那你就是老实人,前后叫做独立事件,就算连开100次正面,那么下一次开正面的概率还是0.5。其实不对,因为我又没有说正反两面材质完全均匀,就算他们是一模一样不可分辨,那么又怎样来确定哪一面叫做正面,哪一面叫做反面?如果答案是0.6,那就叫做频率学派,他们认为前面是怎样,后面还是那样,前面十次出现六次,后面还是应该十次出现六次。中规中矩,但也不会犯大的错误。那还有其他答案吗?贝叶斯说既要表达主观意见,同时让这个意见要接受来自于实践的修正。我们一般认为硬币正面向上的概率50%,这个叫做先验概率,而在这个例子中所表现出来的60%叫做经验概率。我们的先验概率要根据经验的证据而做出修正。它的意思是说,我们先估计事情A发生的概率是,然后知道了一系列跟A有关的事情B已经发生了,然后再根据事实来反推A可能的概率究竟是多少。贝叶斯公式根据具体的模型分布推导出下一次硬币正面向上的概率,代入我们之前的先验概率0.5和经验概率0.6,按照贝叶斯公式就得出了下一次正面朝上的概率是多少啦!

硬币

大家平时在刷短视频的时候经常会刷到美女或者自己感兴趣的内容也是因为平台系统的个性化推荐也有结合了贝叶斯算法,基本思想是根据用户历史行为和反馈信息,计算用户对不同推荐内容的喜欢程度从而提高推荐效果,抢占更多的用户时长,不同的平台算法和权重会也有差异,比如小红书流量推荐规则的内容标签匹配社交关系链推荐CES评分体系权重算法是(点赞数×1+收藏数×1+评论数×4+转发数×4+关注数×8),贝叶斯在计算过程中会对不同特征进行离散化处理,并进行平滑处理,以避免概率值为0的情况,同时,为了提高推荐效果,可以将贝叶斯算法与其他推荐算法,如协同过滤、基于内容的推荐等,进行结合,从从而实现更精准的推荐优化。

流量推荐

而在广告投放中的信息流投流中,优化师通常可以通过广告定向的各种组合数据反推出哪一个才是更好的广告定向组合,从而优先分配更多的预算或出更高的价格去找到更多合适的精准营销流量转化,这个算法可以解决我们经常遇到的问题,比如已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求P(B|A)。因为我们很容易可以计算到正向概率,但是反推逆概问题就会比较困难,而通过贝叶斯的逆概率公式就能很便捷的算出来。

我们先来看下贝叶斯的公式:P(A|B)=P(B|A)*P(A)/P(B)那么这个公式是怎么来的呢?

贝叶斯公式

先验概率:P(A),某个事件A发生的概率,如公式中的事件A发生的的概率,初始概率或基础概率,先验是因为不用考虑任何B方面因素。

后验概率:P(A|B),事件A在另一个事件B已经发生的条件下发生的概率,结合先验概率和证据计算之后才知道,也就是修正概率

似然概率:P(B|A),在事件A发生的情况下,事件B的概率有多大

标准化常量证据:P(B)是B的先验概率或边缘概率,也作标准化常量。

后验概率=(先验概率*似然概率) / 常数(贝叶斯决策根据后验概率作出决策)

这里主要看(先验概率*似然概率)大小

那这是怎么推导过来的,其实理解了全概率公式再理解贝叶斯公式就很容易看得懂了,这个贝叶斯公式实际是变形得到的P(A|B)=P(B|A)*P(A)/P(B)因为两个条件概率P(A|B) 和 P(B|A),按照乘法法则,可以立刻导出:P(A∩B) = P(A)*P(B|A)=P(B)*P(A|B)

全概率公式:知因求果,考察在每一种情况下事件B发生的概率,计算B的概率

贝叶斯公式:知果求因,在事件B发生的条件下,考察每种情况出现的条件概率

我们先看下全概率公式

一般设A1,A2,A3...An是一组两两互斥的事件,A1∪A2∪A3...∪An=Ω且P(Ai)>0,x=1,2,3...n;对任意事件B⊆Ω

P(B)=P(A1)P(B|A1)+P(A2)P(B|A2)+....P(An)P(B|An)


用于将一个复杂事件的概率计算问题,分解若干个简单事件的概率计算问题,最后应用概率的可加性求出最终结果

然后再看贝叶斯公式

设试验E的样本空间为Ω,A为事件,B1,B2,B3...Bn为的一个划分,且P(A)>0,P(Bi)>0(i=1,2...n),则P(Bi|A)=


推导如下:

条件概率:P(B|A)=P(AB)/P(A) ;P(A|B)=P(AB)/P(B) 

乘法公式:P(AB)=P(A)*P(B|A)=P(B)*P(A|B) 

全概率公式:P(A)=P(B1)P(A|B1)+P(B2)P(A|B2)+....P(Bn)P(A|Bn) 

贝叶斯公式:

P(A B)=P(A|B)P(B)=P(B|A)P(A)

对于简单的二元示例,只有两种结果,A可能为01,则根据贝叶斯公式,有

 


我们也可以通过Python建立模型计算不同用户点击广告的转化率然后可视化出来计算数据就会更便于我们对信息流投放定向的效果调整和优化

1 import numpy as np

2 from sklearn.linear_model import LinearRegression

3

4 # 假设用户兴趣数据为X,广告兴趣数据为Y

5 X = np.array([[1, 'sports'], [2, 'entertainment'], [3, 'technology'], [4, 'health']])

6 Y = np.array([[1, 0.2], [2, 0.3], [3, 0.1], [4, 0.5]])

7

8 # 训练线性回归模型

9 model = LinearRegression()

10 model.fit(X, Y)

11

12 # 计算用户兴趣的权重向量

13 weights = model.coef_[0]

14

15 # 计算广告兴趣的权重向量

16 weights_adv = model.coef_[1]

17

18 # 计算转化率

19 conversion_rate = weights * Y[:, np.newaxis]

20

21 # 计算不同性别、年龄、兴趣标签的用户点击广告的转化率

22 gender_conversion_rate = weights * (1 - np.abs(Y[:, np.newaxis] - np.array([1, 2, 3])))

23 age_conversion_rate = weights * (1 - np.abs(Y[:, np.newaxis] - np.array([20, 30, 40])))

24 interest_conversion_rate = weights * (1 - np.abs(Y[:, np.newaxis] - np.array(['sports', 'entertainment', 'technology'])))

在上面的代码中,我们使用了sklearn库中的LinearRegression类来训练线性回归模型。然后,我们使用模型的权重向量来计算不同性别、年龄、兴趣标签的用户点击广告的转化率。最后,我们可以将转化率数据可视化出来,以便更好地理解和分析数据。也可以用API回传数据对信息流定向数据进行分类再用贝叶斯公式计算后验概率和条件概率可以使用scikit-learn库来进行线性回归分析,同时也可以使用numpy和pandas等库来进行数据处理和可视化。但是上面的这些代码只是一个简单的示例,实际应用中可能需要对数据进行更加复杂的处理和分析,以获得更加准确的结果。

Python

假设我们有一个包含信息流定向数据的数据集,其中每个数据点都包含两个属性:时间戳定向类别。我们想要对这些数据进行分类,将其分为“正在浏览”和“正在搜索”两个类别。

首先,我们需要将数据集转换为一个概率分布。我们可以使用贝叶斯公式来计算每个数据点属于每个类别的概率。假设我们有两个类别:“正在浏览”和“正在搜索”,我们可以使用以下公式计算每个数据点属于每个类别的概率:

P(x ∈ A) = P(x ∈ A | y = 1) * P(y = 1) + P(x ∈ A | y = 0) * P(y = 0)

其中,P(x ∈ A | y = 1)表示x属于类别A且y为1的概率

P(y = 1)表示y为1的概率

P(x ∈ A | y = 0)表示x属于类别A且y为0的概率

P(y = 0)表示y为0的概率。

接下来,我们可以使用贝叶斯公式计算每个数据点属于每个类别的后验概率。假设我们有两个类别:“正在浏览”和“正在搜索”,我们可以使用以下公式计算每个数据点属于每个类别的后验概率:

P(x ∈ A | y = 1) = P(x ∈ A | y = 1 | z = 1) * P(z = 1) + P(x ∈ A | y = 1 | z = 0) * P(z = 0)

其中,P(x ∈ A | y = 1 | z = 1)表示x属于类别A且y为1且z为1的概率

P(z = 1)表示z为1的概率

P(x ∈ A | y = 1 | z = 0)表示x属于类别A且y为1且z为0的概率

P(z = 0)表示z为0的概率。

通过以上步骤,我们可以计算每个数据点属于每个类别的概率后验概率,并使用它们来进行分类。能看到这里的朋友,想必基本都能理解了,如果不是做数据挖掘深度分析,其实信息流广告多数情况只需要用到简单的二元示例,原理也是一样的,把多组数据进行分组计算,无论是定向、创意还是素材,满足能区分转化和未转化的用户条件,即可计算出转化概率来,这些概率有一定的参考和帮助作用,可以将其应用于广告投放,创造更高的ROI,实际效果调整还是结合账户情况来做优化的!

邓老师在艾课网的课程中有这么一个案例问题,大家也可以计算一下或者去艾课网观看学习更系统的知识!

信息流定向转化概率题

基于上面的定向转化数据和贝叶斯公式推导:P(A|B)=P(A)*P(B|A)÷P(B)

假设广告定向X=(性别=“男”,年龄=“35-39岁”,地域=“广州”)

那么定向为X的用户转化1的概率是多少?就是当一个用户性别男,年龄30-39岁,地域在广州的用户看到我们的广告时,有多大概率可能发生转化?

广告数据分析实战与案例演示

大家有兴趣的可以去艾课网购买课程观看,只需要99元就可以了,但是现在艾课网有一个更优惠的套餐,就是299元月度会员解锁所有课程学习,这个是非常划算的,因为一个月已经可以学习很多其他的课程了,邓老师这节课所涉及的内容范围也是比较广泛的,要是小白的话很多内容不一定可以马上消化到,这节课目录下面也有很多的相关课程链接,购买会员后学习效果会更好!如果单独去买的话,基本都在99元左右,还有一些更丰富或高阶的会更贵一些,艾课网也是希望更多的互联网人能够去系统学习,直接长按图片扫描下方二维码即可进入观看啦!

届时邓老师也将会在今年的7月份再次举办一堂新的公开课播出,更多课程学习和最新消息请关注老邓营销家园公粽号和营业运营邓老师蝴蝶号~!

广告数据分析之信息流定向朴素贝叶斯算法的评论 (共 条)

分享到微博请遵守国家法律