1.从贝叶斯公式说起
贝叶斯公式又称逆概率公式,定义为:
这个公式的目的是求在B已经发生的情况下反推导致这种情况的
A
j
A_j
Aj出现的概率,求这个概率的前提是
P
(
A
i
)
P(A_i)
P(Ai)和
P
(
B
∣
A
i
)
P(B|A_i)
P(B∣Ai)能直接求出。在这个式子里面
P
(
A
i
)
P(A_i)
P(Ai)被称为先验概率,因为它是事先知道的,
P
(
B
∣
A
i
)
P(B|A_i)
P(B∣Ai)为条件概率,
P
(
A
j
∣
B
)
P(A_j|B)
P(Aj∣B)是后验概率,因为是B发生之后求
P
(
A
j
)
P(A_j)
P(Aj)的概率。
2.朴素贝叶斯
先给一组训练数据:
其中
x
1
x_1
x1为
(
x
1
(
1
)
,
x
1
(
2
)
,
x
1
(
3
)
⋅
⋅
⋅
x
1
(
m
)
)
(x_1^{(1)},x_1^{(2)},x_1^{(3)}···x_1^{(m)})
(x1(1),x1(2),x1(3)⋅⋅⋅x1(m)),
x
2
x_2
x2为
(
x
2
(
1
)
,
x
2
(
2
)
,
x
2
(
3
)
⋅
⋅
⋅
x
2
(
m
)
)
(x_2^{(1)},x_2^{(2)},x_2^{(3)}···x_2^{(m)})
(x2(1),x2(2),x2(3)⋅⋅⋅x2(m)),···
x
N
x_N
xN为
(
x
N
(
1
)
,
x
N
(
2
)
,
x
N
(
3
)
⋅
⋅
⋅
x
N
(
m
)
)
(x_N^{(1)},x_N^{(2)},x_N^{(3)}···x_N^{(m)})
(xN(1),xN(2),xN(3)⋅⋅⋅xN(m)),即公有N个样本,每个样本有
m
m
m个特征,此外样本的输出
y
y
y可以分为
k
k
k个类别,即
(
c
1
,
c
2
,
⋅
⋅
⋅
c
K
)
(c_1,c_2,···c_K)
(c1,c2,⋅⋅⋅cK) 。
从样本我们可以学到朴素贝叶斯的先验分布,即 P ( Y = c k ) P(Y=c_k) P(Y=ck),学习方法是采用极大似然估计来近似求出 P ( Y = c k ) P(Y=c_k) P(Y=ck),简单来说就是用样本中 y = c k y=c_k y=ck的概率来近似 P ( Y = c k ) P(Y=c_k) P(Y=ck)。
接着学习条件概率分布:
P
(
X
=
x
∣
Y
=
c
k
)
=
P
(
X
1
=
x
1
,
X
2
=
x
2
,
⋅
⋅
⋅
X
n
=
x
n
∣
Y
=
c
k
)
P(X=x|Y=c_k)=P(X_1=x_1,X_2=x_2,···X_n=x_n|Y=c_k)
P(X=x∣Y=ck)=P(X1=x1,X2=x2,⋅⋅⋅Xn=xn∣Y=ck)
这是n个维度的条件概率分布,是很难求出的。所以朴素贝叶斯在这里做了一个假设,即
X
X
X的n个维度之间相互独立(朴素贝叶斯和贝叶斯的区别),这样就可以将上式化简为:
P
(
X
=
x
∣
Y
=
c
k
)
=
P
(
X
1
=
x
1
∣
Y
=
c
k
)
P
(
X
2
=
x
2
∣
Y
=
c
k
)
⋅
⋅
⋅
P
(
X
n
=
x
n
∣
Y
=
c
k
)
P(X=x|Y=c_k)=P(X_1=x_1|Y=c_k)P(X_2=x_2|Y=c_k)···P(X_n=x_n|Y=c_k)
P(X=x∣Y=ck)=P(X1=x1∣Y=ck)P(X2=x2∣Y=ck)⋅⋅⋅P(Xn=xn∣Y=ck)
这样做大大简化了计算,但会造成准确率下降。计算上面每一项的方法是根据其在样本中出现的概率用极大似然估计来近似。
先验概率和条件概率算完之后就到了后验概率
这里是整个朴素贝叶斯最重要的地方,我们根据训练数据集来近似求出先验概率和条件概率,然后就可以根据这个式子算出后验概率了。再根据朴素贝叶斯的那个假设来对求解过程进行化简:
然后进引出了朴素贝叶斯的分类器:
这个分类器的功能是给其输入一个样本,然后分类器会输出该样本最有可能所属的类别。因为上面式子中分母对所有
c
k
c_k
ck都是相同的,故使
P
(
Y
=
c
k
∣
X
=
x
)
P(Y=c_k|X=x)
P(Y=ck∣X=x)最大的分类器只需要分子即可: