朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的基础上得出的分类方法。朴素贝叶斯法实现简单,学习与预测效率高,是一种常用的方法。当样本中的各个变量独立时,朴素贝叶斯法所得出的分类结果准确率是最高的。但是这个条件比较苛刻,在实际情况中各个变量往往具有相关性。即使如此,当变量之间相关性较低时,贝叶斯分类依然有较好的分类性能。
下边结合李航老师的统计学习方法以及一些网站用例子来直接理解贝叶斯分类。
1.病人分类
医院早上收了6个病人,信息如下表
症状 | 职业 | 疾病 |
---|---|---|
打喷嚏 | 护士 | 感冒 |
打喷嚏 | 农夫 | 过敏 |
头痛 | 建筑工人 | 脑震荡 |
头痛 | 建筑工人 | 感冒 |
打喷嚏 | 教师 | 感冒 |
头痛 | 教师 | 脑震荡 |
问来了一个打喷嚏的建筑工人,患感冒的几率是多大。
根据贝叶斯定理
P
(
A
∣
B
)
=
P
(
B
∣
A
)
∗
P
(
A
)
P
(
B
)
P(A|B) = \frac{P(B|A)*P(A)}{P(B)}
P(A∣B)=P(B)P(B∣A)∗P(A)
P
(
感
冒
∣
打
喷
嚏
,
建
筑
工
人
)
=
P
(
打
喷
嚏
,
建
筑
工
人
∣
感
冒
)
∗
P
(
感
冒
)
P
(
打
喷
嚏
,
建
筑
工
人
)
P(感冒|打喷嚏,建筑工人) = \frac{P(打喷嚏,建筑工人|感冒)*P(感冒)}{P(打喷嚏,建筑工人)}
P(感冒∣打喷嚏,建筑工人)=P(打喷嚏,建筑工人)P(打喷嚏,建筑工人∣感冒)∗P(感冒)
其中打喷嚏、建筑工人这两个特征可以看成是独立的,所以
P
(
打
喷
嚏
,
建
筑
工
人
)
=
P
(
打
喷
嚏
)
∗
P
(
建
筑
工
人
)
=
0.5
∗
0.33
=
0.166
P(打喷嚏,建筑工人) = P(打喷嚏)*P(建筑工人)=0.5*0.33=0.166
P(打喷嚏,建筑工人)=P(打喷嚏)∗P(建筑工人)=0.5∗0.33=0.166
而从表得知P(感冒)=0.5。
P
(
打
喷
嚏
,
建
筑
工
人
∣
感
冒
)
=
P
(
打
喷
嚏
∣
感
冒
)
∗
P
(
建
筑
工
人
∣
感
冒
)
=
0.66
∗
0.33
=
0.218
P(打喷嚏,建筑工人|感冒)=P(打喷嚏|感冒)*P(建筑工人|感冒)\\=0.66*0.33=0.218
P(打喷嚏,建筑工人∣感冒)=P(打喷嚏∣感冒)∗P(建筑工人∣感冒)=0.66∗0.33=0.218
因此最后的结果为0.218*0.5/0.166=66%
同理,可以根据这个公式计算该病人得过敏和脑震荡的几率,取最大值为最终的判断。
2.贝叶斯分类器公式
设样本有N个特征,分别为
F
1
,
F
2
.
.
.
F
n
F_1,F_2...F_n
F1,F2...Fn,有M个分类标签
C
1
,
C
2
.
.
.
C
M
C_1,C_2...C_M
C1,C2...CM,则贝叶斯分类器就是求以下算式的最大值
P
(
C
∣
F
1
,
F
2
.
.
.
F
n
)
=
P
(
F
1
,
F
2
.
.
.
F
n
∣
C
)
∗
P
(
C
)
P
(
F
1
,
F
2
.
.
.
.
F
n
)
P(C|F_1,F_2...F_n)=\frac{P(F_1,F_2...F_n|C)*P(C)}{P(F_1,F_2....F_n)}
P(C∣F1,F2...Fn)=P(F1,F2....Fn)P(F1,F2...Fn∣C)∗P(C)
而对于每一个
C
1
.
.
.
C
M
C_1...C_M
C1...CM,分母都是一样的,因此只要求分子最大值就可以了。
贝叶斯分类再假设样本中每个特征都是独立的,因此
P
(
F
1
,
F
2
.
.
.
F
n
∣
C
)
=
P
(
F
1
∣
C
)
∗
P
(
F
2
∣
C
)
.
.
.
.
P
(
F
n
∣
C
)
P(F_1,F_2...F_n|C)=P(F_1|C)*P(F_2|C)....P(F_n|C)
P(F1,F2...Fn∣C)=P(F1∣C)∗P(F2∣C)....P(Fn∣C)
对于每一个
C
K
k
∈
{
1
,
2...
M
}
C_K \quad k\in\{1,2...M\}
CKk∈{1,2...M}求得每一个
P
(
F
1
,
F
2
.
.
.
F
n
∣
C
K
)
P(F_1,F_2...F_n|C_K)
P(F1,F2...Fn∣CK)的值,取最大值时K作为此样本的分类即可
3 另一个例子
由以上训练样本及标签确定一个贝叶斯分类器。样本为1个2维向量,其中
X
(
1
)
∈
{
1
,
2
,
3
}
,
X
(
2
)
∈
{
S
,
M
,
L
}
X^{(1)}\in\{1,2,3\},X^{(2)}\in\{S,M,L\}
X(1)∈{1,2,3},X(2)∈{S,M,L},标签
Y
∈
{
−
1
,
1
}
Y\in\{-1,1\}
Y∈{−1,1}。并且求样本
x
=
{
2
,
S
}
x=\{2,S\}
x={2,S}的标签。
因为标签为-1,1,因此要求样本x的标签,即求P(Y=1|X=(2,S))和P(Y=-1|X=(2,S))。
P
(
Y
=
1
∣
X
=
(
2
,
S
)
)
=
P
(
X
=
(
2
,
S
)
∣
Y
=
1
)
∗
P
(
Y
=
1
)
=
P
(
X
1
=
2
∣
Y
=
1
)
∗
P
(
X
2
=
S
∣
Y
=
1
)
∗
P
(
Y
=
1
)
=
2
6
∗
3
6
∗
9
15
=
1
45
\begin{aligned} P(Y=1|X=(2,S)) &= P(X=(2,S)|Y=1)*P(Y=1)\\ &=P(X_1=2|Y=1)*P(X_2=S|Y=1)*P(Y=1)\\ &=\frac{2}{6}*\frac{3}{6}*\frac{9}{15}=\frac{1}{45} \end{aligned}
P(Y=1∣X=(2,S))=P(X=(2,S)∣Y=1)∗P(Y=1)=P(X1=2∣Y=1)∗P(X2=S∣Y=1)∗P(Y=1)=62∗63∗159=451
同理求得
P
(
Y
=
−
1
∣
X
=
(
2
,
S
)
)
=
1
15
P(Y=-1|X=(2,S))=\frac{1}{15}
P(Y=−1∣X=(2,S))=151,因此此样本标签记为-1。