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(B∣A)=Pr(A)Pr(AB)=Pr(A)Pr(B)Pr(A∣B)
借助一个贴近现实的例子,可以帮助我们更好的理解它。假设现在有世界杯的小组赛,中国队有可能分到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(A∣E) 的解释为中国队出线的状态下是因为分到了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(A∣E)=Pr(E)Pr(A)Pr(E∣A)其中Pr(E)=Pr(A)Pr(E∣A)+Pr(B)Pr(E∣B)(1)(2)
解释一下其中变量的意义:
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(E∣A) 的解释为,中国队被分到A组的情况下出线的概率,由博彩公司提供的数据我们知道
P
r
(
E
∣
A
)
=
0.9
Pr(E|A)=0.9
Pr(E∣A)=0.9
同理,
P
r
(
E
∣
B
)
Pr(E|B)
Pr(E∣B) 的解释为,中国队被分到B组的情况下出线的概率,由博彩公司提供的数据我们知道
P
r
(
E
∣
B
)
=
0.01
Pr(E|B)=0.01
Pr(E∣B)=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(A∣E)=Pr(E)Pr(A)Pr(E∣A)=Pr(A)Pr(E∣A)+Pr(B)Pr(E∣B)Pr(A)Pr(E∣A),代入数据,计算出得结果为:
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(A∣E)=0.5∗0.9+0.5∗0.010.5∗0.9≈0.989
结果与我们的直觉相同,出线的情况下,有98.9%的概率是因为分到了A组,那么出线的情况下分到B组的概率自然等于
1
−
P
r
(
A
∣
E
)
1-Pr(A|E)
1−Pr(A∣E),这里代入数据验证一下。
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(B∣E)=Pr(A)Pr(E∣A)+Pr(B)Pr(E∣B)Pr(B)Pr(E∣B)=0.5∗0.9+0.5∗0.010.5∗0.01≈0.011
这里借助一个图来加深一下理解。
我们把这个图当作是一个流量图,令初识点(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(start→E)=flow(start→start)×(start,A)×(A,E)+flow(start→start)×(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(A→E) 表示它。
所以条件概率
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(A∣E)=Pr(E)Pr(AE)=flow(start→E)flow(A→E=flow(A→E)+flow(B→E)flow(A→E)
就可以理解成经由
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
Yi∈C 代表第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(c1∣X) 和
P
r
(
c
2
∣
X
)
Pr(c_2|X)
Pr(c2∣X) ,比较一下两者的大小,选择概率大的为预测值,下面罗列一下思路,由贝叶斯公式得,
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(c1∣X)=Pr(X)Pr(c1)Pr(X∣c1)Pr(c2∣X)=Pr(X)Pr(c2)Pr(X∣c2)
通过观察可见分母相同,只需要比较分子就可以比较大小,而
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(X∣ci) ,这里把
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(X∣ci)=Pr(x1,x2,x3,x4∣ci)。但是这样还是没办法计算,不过如果
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(X∣ci)=Pr(x1,x2,x3,x4∣ci)=Pr(x1∣ci)Pr(x2∣ci)Pr(x3∣ci)Pr(x4∣ci)
这样其中每一个部分就可以通过计算获得了,例如
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(x1∣c1)=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(x1∩c1)=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(x1∣c1)=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(c1∣X)=Pr(X)Pr(c1)Pr(X∣c1)=Pr(X)Pr(c1)Pr(x1,x2,x3,x4∣c1)=Pr(X)Pr(c1)Pr(x1∣c1)Pr(x2∣c1)Pr(x3∣c1)Pr(x4∣c1)
代入数据得,
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(c1∣X)=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(c2∣X)=Pr(X)Pr(c2)Pr(X∣c2)=Pr(X)Pr(c2)Pr(x1,x2,x3,x4∣c2)=Pr(X)Pr(c2)Pr(x1∣c2)Pr(x2∣c2)Pr(x3∣c2)Pr(x4∣c2)
代入数据得,
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(c2∣X)=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(c1∣X)>Pr(c2∣X),所以预测数据所属的分类为 c 1 c_1 c1 ,即会买电脑。
参考
[1] Han, Jiawei, Jian Pei, and Micheline Kamber. Data mining: concepts and techniques. Elsevier, 2011.