贝叶斯公式到朴素贝叶斯

1 关于贝叶斯公式的一个简单的例子

**贝叶斯公式(Bayes‘ Formula)**是非常简洁漂亮的一个公式,如下:
P r ( B ∣ A ) = P r ( A B ) P r ( A ) = P r ( B ) P r ( A ∣ B ) P r ( A ) Pr(B|A) = \frac{Pr(AB)}{Pr(A)} = \frac{Pr(B)Pr(A|B)}{Pr(A)} Pr(BA)=Pr(A)Pr(AB)=Pr(A)Pr(B)Pr(AB)
借助一个贴近现实的例子,可以帮助我们更好的理解它。假设现在有世界杯的小组赛,中国队有可能分到A组或者B组,为了更贴近一下现实,我们假设这是篮球世界杯吧,现在AB组里面已经确定好的国家队如下:
A组:菲律宾 科特迪瓦 新西兰
B组:美国 塞尔维亚 澳大利亚

现在只剩下中国队和韩国队等待分配了,对于中国队而言会以相等的概率分到A组或者B组,同样韩国队也是,比如中国分到A组,韩国队就会分到B组。但此时晓明家里断电了?‍♂️,晓明并不知道中国队最后分到了哪一个小组,一周后,听说中国出线了,而韩国队小组赛全败。所以问题来了,让你帮助晓明分析一下中国队大概率分到了哪一个小组?。

直觉告诉我们B组是个死亡之组,然后最后我们出线了,反向思考一下,肯定分到A组了嘛,但是这个怎么用数学去量化呢,这里贝叶斯公式发挥了作用。

首先,我们量化一下分别在AB组出线的难易程度,假设一个权威博彩公司给我们提供了概率,在A组出线的概率有90%,在B组出线的概率有1%。剩下只需要建一下模型就可以计算了。

我们令中国队出线了这个事件(event)为E,即 E = { 中 国 队 出 线 了 } E=\{中国队出线了\} E={线},令事件 A A A代表中国队分到了A小组,令事件 B B B代表A的补(complement),即中国队分到了B小组。这样,条件概率(Conditional Probability) P ( A ∣ E ) P(A|E) P(AE) 的解释为中国队出线的状态下是因为分到了A组,贝叶斯公式告诉我们怎么计算它,
P r ( A ∣ E ) = P r ( A ) P r ( E ∣ A ) P r ( E ) ( 1 ) 其 中 P r ( E ) = P r ( A ) P r ( E ∣ A ) + P r ( B ) P r ( E ∣ B ) ( 2 ) \begin{aligned} Pr(A|E) = \frac{Pr(A)Pr(E|A)}{Pr(E)}\qquad &(1)\\ 其中 Pr(E) = Pr(A)Pr(E|A) + Pr(B)Pr(E|B) \qquad &(2) \end{aligned} Pr(AE)=Pr(E)Pr(A)Pr(EA)Pr(E)=Pr(A)Pr(EA)+Pr(B)Pr(EB)12
解释一下其中变量的意义:
P r ( A ) Pr(A) Pr(A) ,即中国队分到A组的概率,因为中国队会以同等概率分到A组或者B组,所以显然 P r ( A ) = P r ( B ) = 0.5 Pr(A) = Pr(B) = 0.5 Pr(A)=Pr(B)=0.5
P r ( E ∣ A ) Pr(E|A) Pr(EA) 的解释为,中国队被分到A组的情况下出线的概率,由博彩公司提供的数据我们知道 P r ( E ∣ A ) = 0.9 Pr(E|A)=0.9 Pr(EA)=0.9
同理, P r ( E ∣ B ) Pr(E|B) Pr(EB) 的解释为,中国队被分到B组的情况下出线的概率,由博彩公司提供的数据我们知道 P r ( E ∣ B ) = 0.01 Pr(E|B)=0.01 Pr(EB)=0.01
P r ( E ) Pr(E) Pr(E)就是中国队出线的概率,这里,中国可能有两种方式出线,一种是分到A组然后出线,一种是分到B组后出线,(2)式通过罗列这两种方式结算其概率。

所以综上, P r ( A ∣ E ) = P r ( A ) P r ( E ∣ A ) P r ( E ) = P r ( A ) P r ( E ∣ A ) P r ( A ) P r ( E ∣ A ) + P r ( B ) P r ( E ∣ B ) Pr(A|E) = \frac{Pr(A)Pr(E|A)}{Pr(E)} = \frac{Pr(A)Pr(E|A)}{Pr(A)Pr(E|A) + Pr(B)Pr(E|B)} Pr(AE)=Pr(E)Pr(A)Pr(EA)=Pr(A)Pr(EA)+Pr(B)Pr(EB)Pr(A)Pr(EA),代入数据,计算出得结果为:
P r ( A ∣ E ) = 0.5 ∗ 0.9 0.5 ∗ 0.9 + 0.5 ∗ 0.01 ≈ 0.989 Pr(A|E) = \frac{0.5*0.9}{0.5*0.9 + 0.5*0.01} \approx 0.989 Pr(AE)=0.50.9+0.50.010.50.90.989
结果与我们的直觉相同,出线的情况下,有98.9%的概率是因为分到了A组,那么出线的情况下分到B组的概率自然等于 1 − P r ( A ∣ E ) 1-Pr(A|E) 1Pr(AE),这里代入数据验证一下。
P r ( B ∣ E ) = P r ( B ) P r ( E ∣ B ) P r ( A ) P r ( E ∣ A ) + P r ( B ) P r ( E ∣ B ) = 0.5 ∗ 0.01 0.5 ∗ 0.9 + 0.5 ∗ 0.01 ≈ 0.011 Pr(B|E) = \frac{Pr(B)Pr(E|B)}{Pr(A)Pr(E|A) + Pr(B)Pr(E|B)} = \frac{0.5*0.01}{0.5*0.9 + 0.5*0.01} \approx 0.011 Pr(BE)=Pr(A)Pr(EA)+Pr(B)Pr(EB)Pr(B)Pr(EB)=0.50.9+0.50.010.50.010.011

这里借助一个图来加深一下理解。

0.5
0.5
0.9
0.1
0.01
0.99
Start
A
B
E
E

我们把这个图当作是一个流量图,令初识点(start)的流量为1,除了初识点和终结点外一个结点流入的流量等于流出的流量,其中边上的数据为边上流出量所占总流出量的比例,举个例子,边 ( s t a r t , A ) (start, A) (start,A)的含义是 s t a r t start start点流到 A A A点的量占它总流出量的比例为0.5。
E E E点作为终结点,它的流量来源有两个,一个是 A A A输给 E E E的,另外一个是 B B B输到 E E E的(上图中的粗线),所以由 s t a r t start start点流入 E E E的流量值为:
f l o w ( s t a r t → E ) = f l o w ( s t a r t → s t a r t ) × ( s t a r t , A ) × ( A , E ) + f l o w ( s t a r t → s t a r t ) × ( s t a r t , B ) × ( B , E ) = 1 × 0.5 × 0.9 + 1 × 0.5 × 0.005 = 0.455 flow(start\rightarrow E) = flow(start \rightarrow start)\times (start, A)\times (A, E) + flow(start\rightarrow start)\times (start, B)\times (B, E) = 1 \times 0.5\times 0.9 + 1\times 0.5\times 0.005 =0.455 flow(startE)=flow(startstart)×(start,A)×(A,E)+flow(startstart)×(start,B)×(B,E)=1×0.5×0.9+1×0.5×0.005=0.455
显然流量值可以理解成概率。而概率 P r ( A E ) Pr(AE) Pr(AE) 可以理解为经由A点到达E点的流量,我们用 f l o w ( A → E ) flow(A\rightarrow E) flow(AE) 表示它。
所以条件概率 P r ( A ∣ E ) = P r ( A E ) P r ( E ) = f l o w ( A → E f l o w ( s t a r t → E ) = f l o w ( A → E ) f l o w ( A → E ) + f l o w ( B → E ) \begin{aligned}Pr(A|E) &= \frac{Pr(AE)}{Pr(E)}\\ &= \frac{flow(A\rightarrow E}{flow(start\rightarrow E)}\\ &= \frac{flow(A\rightarrow E)}{flow(A\rightarrow E)+flow(B\rightarrow E) }\end{aligned} Pr(AE)=Pr(E)Pr(AE)=flow(startE)flow(AE=flow(AE)+flow(BE)flow(AE)
就可以理解成经由 A A A流入 E E E的流量占流入 E E E总流量的比值,也可以理解成 A A A点的贡献值,所以贝叶斯公式计算的就是这个贡献率。

从上面这个例子可以看出,我们通过贝叶斯公式计算的条件概率是一个逆向的思考过程,在大多数情况下,前向的计算是比较直观且容易的,很多可以通过统计去获取它的概率值,而逆向的条件概率就要复杂一些了,但是贝叶斯公式给我们提供了计算的方法。

下面一部分介绍一下贝叶斯公式在机器学习中的应用,朴素贝叶斯算法(Naive Bayes)

2 朴素贝叶斯算法

朴素贝叶斯算法是对贝叶斯公式的应用,首先我们讨论一下机器学习中的分类问题(Classification),令第 i i i条数据**特征(feature)**的向量为 X [ i ] ∈ R n X^{[i]}\in \mathbb{R}^n X[i]Rn,可以展开的表示为 X [ i ] = [ x 1 , x 2 , . . . , x n ] T X^{[i]}=[x_1, x_2, ...,x_n]^T X[i]=[x1,x2,...,xn]T,每一条数据对应着它的类别,令 C = { c 1 , c 2 , . . . , c r } C = \{c_1, c_2, ..., c_r\} C={c1,c2,...,cr}为类别的集合,令 Y Y Y代表对应每条数据所属的类别,则 Y i ∈ C Y_i \in C YiC 代表第i条数据的类别,也可以叫做标签。分类任务的目标就是给我们一条数据,预测出这条数据的类别。下面借助一个例子解释一下。
在这里插入图片描述

如图(例子来自 [ 1 ] ^{[1]} [1]的Chapter 8),考虑一个销售的例子,数据的特征有四个,第 i i i条数据可以表示为 X [ i ] ∈ R 4 X^{[i]}\in \mathbb{R}^4 X[i]R4 ,展开成 X [ i ] = [ x 1 [ i ] , x 2 [ i ] , x 3 [ i ] , x 4 [ i ] ] T X^{[i]}=[x^{[i]}_1, x^{[i]}_2, x^{[i]}_3, x^{[i]}_4]^T X[i]=[x1[i],x2[i],x3[i],x4[i]]T,其中 x 1 , x 2 , x 3 , x 4 x_1, x_2, x_3, x_4 x1,x2,x3,x4分别代表年龄、收入、是否是学生、信用评价。我们任务的目标是根据这些特征对数据做一个分类,类别的集合为 C = { c 1 , c 2 } C = \{c_1, c_2\} C={c1,c2} c 1 c_1 c1代表yes,即会买我们的电脑, c 2 c_2 c2代表no,即不会买电脑。
假设有一条数据为
X = ( 年 龄 < = 30 , 收 入 = m e d i u m , 是 学 生 = y e s , 信 用 评 分 = F a i r ) X = (年龄 <=30, 收入 = medium, 是学生 = yes,信用评分 = Fair) X=(<=30,=medium,=yes=Fair)
预测它所属的类别。

思路很简单,借助贝叶斯公式我们可以计算 P r ( c 1 ∣ X ) Pr(c_1|X) Pr(c1X) P r ( c 2 ∣ X ) Pr(c_2|X) Pr(c2X) ,比较一下两者的大小,选择概率大的为预测值,下面罗列一下思路,由贝叶斯公式得,
P r ( c 1 ∣ X ) = P r ( c 1 ) P r ( X ∣ c 1 ) P r ( X ) P r ( c 2 ∣ X ) = P r ( c 2 ) P r ( X ∣ c 2 ) P r ( X ) Pr(c_1|X) = \frac{Pr(c_1)Pr(X|c_1)}{Pr(X)} \\ Pr(c_2|X) = \frac{Pr(c_2)Pr(X|c_2)}{Pr(X)} Pr(c1X)=Pr(X)Pr(c1)Pr(Xc1)Pr(c2X)=Pr(X)Pr(c2)Pr(Xc2)
通过观察可见分母相同,只需要比较分子就可以比较大小,而 P r ( c 1 ) Pr(c_1) Pr(c1) P r ( c 2 ) Pr(c_2) Pr(c2) 可以通过数数的方法计算出来,如,上图共有14条数据,其中 c 1 c_1 c1有9个, c 2 c_2 c2 有5个,则 P r ( c 1 ) = 9 14 Pr(c_1) = \frac{9}{14} Pr(c1)=149 P r ( c 2 ) = 5 14 Pr(c_2) = \frac{5}{14} Pr(c2)=145。那么问题就在于如何计算 P r ( X ∣ c i ) Pr(X|c_i) Pr(Xci) ,这里把 X X X展开一下, P r ( X ∣ c i ) = P r ( x 1 , x 2 , x 3 , x 4 ∣ c i ) Pr(X|c_i) = Pr(x_1,x_2,x_3,x_4|c_i) Pr(Xci)=Pr(x1,x2,x3,x4ci)。但是这样还是没办法计算,不过如果 x 1 , x 2 , x 3 , x 4 x_1,x_2,x_3,x_4 x1,x2,x3,x4之间条件独立的话,就可以直接展开成乘积形式了,所以我们引入一个naive的假设,这样能够使问题变得更加simple。

我们假设特征之间条件独立,这样上面的式子就可以计算了,所谓朴素贝叶斯(naive Bayes),naive的地方就在这里。

所以引入假设后,上式可展开为
P r ( X ∣ c i ) = P r ( x 1 , x 2 , x 3 , x 4 ∣ c i ) = P r ( x 1 ∣ c i ) P r ( x 2 ∣ c i ) P r ( x 3 ∣ c i ) P r ( x 4 ∣ c i ) Pr(X|c_i) = Pr(x_1,x_2,x_3,x_4|c_i) = Pr(x_1|c_i)Pr(x_2|c_i)Pr(x_3|c_i)Pr(x_4|c_i) Pr(Xci)=Pr(x1,x2,x3,x4ci)=Pr(x1ci)Pr(x2ci)Pr(x3ci)Pr(x4ci)
这样其中每一个部分就可以通过计算获得了,例如 P r ( x 1 ∣ c 1 ) = P r ( x 1 c 1 ) P r ( c 1 ) Pr(x_1|c_1)=\frac{Pr(x_1c_1)}{Pr(c_1)} Pr(x1c1)=Pr(c1)Pr(x1c1),这里 x 1 = { a g e < = 30 } x_1= \{age <=30\} x1={age<=30}
P r ( x 1 c 1 ) = P r ( x 1 ∩ c 1 ) = P r { 年 龄 小 于 等 于 30 岁 而 且 买 了 电 脑 } Pr(x_1 c_1) = Pr(x_1 \cap c_1) = Pr\{年龄小于等于30岁而且买了电脑\} Pr(x1c1)=Pr(x1c1)=Pr{30}
通过统计得 P r ( x 1 c 1 ) = 2 14 Pr(x_1c_1) = \frac{2}{14} Pr(x1c1)=142,而 P r ( c 1 ) = 9 14 Pr(c_1) = \frac{9}{14} Pr(c1)=149,所以计算得 P r ( x 1 ∣ c 1 ) = 2 9 Pr(x_1|c_1)=\frac{2}{9} Pr(x1c1)=92。同样可以计算剩余的部分,这样通过比较大小,我们就能够对其分类了。下面给出完整计算过程。
P r ( c 1 ∣ X ) = P r ( c 1 ) P r ( X ∣ c 1 ) P r ( X ) = P r ( c 1 ) P r ( x 1 , x 2 , x 3 , x 4 ∣ c 1 ) P r ( X ) = P r ( c 1 ) P r ( x 1 ∣ c 1 ) P r ( x 2 ∣ c 1 ) P r ( x 3 ∣ c 1 ) P r ( x 4 ∣ c 1 ) P r ( X ) Pr(c_1|X) = \frac{Pr(c_1)Pr(X|c_1)}{Pr(X)} = \frac{Pr(c_1)Pr(x_1,x_2,x_3,x_4|c_1)}{Pr(X)} = \frac{Pr(c_1)Pr(x_1|c_1)Pr(x_2|c_1)Pr(x_3|c_1)Pr(x_4|c_1)}{Pr(X)} Pr(c1X)=Pr(X)Pr(c1)Pr(Xc1)=Pr(X)Pr(c1)Pr(x1,x2,x3,x4c1)=Pr(X)Pr(c1)Pr(x1c1)Pr(x2c1)Pr(x3c1)Pr(x4c1)
代入数据得,
P r ( c 1 ∣ X ) = 9 14 × 2 9 × 4 9 × 6 9 × 6 9 P r ( X ) = 0.028 P r ( X ) Pr(c_1|X) = \frac{\frac{9}{14} \times \frac{2}{9}\times \frac{4}{9} \times \frac{6}{9} \times \frac{6}{9}}{Pr(X)} = \frac{0.028}{Pr(X)} Pr(c1X)=Pr(X)149×92×94×96×96=Pr(X)0.028
同理得,
P r ( c 2 ∣ X ) = P r ( c 2 ) P r ( X ∣ c 2 ) P r ( X ) = P r ( c 2 ) P r ( x 1 , x 2 , x 3 , x 4 ∣ c 2 ) P r ( X ) = P r ( c 2 ) P r ( x 1 ∣ c 2 ) P r ( x 2 ∣ c 2 ) P r ( x 3 ∣ c 2 ) P r ( x 4 ∣ c 2 ) P r ( X ) Pr(c_2|X) = \frac{Pr(c_2)Pr(X|c_2)}{Pr(X)} = \frac{Pr(c_2)Pr(x_1,x_2,x_3,x_4|c_2)}{Pr(X)} = \frac{Pr(c_2)Pr(x_1|c_2)Pr(x_2|c_2)Pr(x_3|c_2)Pr(x_4|c_2)}{Pr(X)} Pr(c2X)=Pr(X)Pr(c2)Pr(Xc2)=Pr(X)Pr(c2)Pr(x1,x2,x3,x4c2)=Pr(X)Pr(c2)Pr(x1c2)Pr(x2c2)Pr(x3c2)Pr(x4c2)
代入数据得,
P r ( c 2 ∣ X ) = 5 14 × 3 5 × 2 5 × 1 5 × 2 5 P r ( X ) = 0.007 P r ( X ) Pr(c_2|X) = \frac{\frac{5}{14} \times \frac{3}{5}\times \frac{2}{5} \times \frac{1}{5} \times \frac{2}{5}}{Pr(X)} = \frac{0.007}{Pr(X)} Pr(c2X)=Pr(X)145×53×52×51×52=Pr(X)0.007

通过比较得 P r ( c 1 ∣ X ) > P r ( c 2 ∣ X ) Pr(c_1|X)>Pr(c_2|X) Pr(c1X)>Pr(c2X),所以预测数据所属的分类为 c 1 c_1 c1 ,即会买电脑。

参考

[1] Han, Jiawei, Jian Pei, and Micheline Kamber. Data mining: concepts and techniques. Elsevier, 2011.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值