朴素贝叶斯的引入
假设我们有两个盒子,第一个盒子里有大小形状相同的4颗蓝球,1颗绿球;第二个盒子里有大小形状相同的2颗蓝球,3颗绿球。我们从两个盒子里任取一颗球是蓝球,问这颗蓝球从第一个盒子里面取出的概率是多少?
这就是后验概率的问题,根据贝叶斯定理计算如下:
P ( B 1 ∣ B l u e ) = P ( B l u e ∣ B 1 ) P ( B 1 ) P ( B l u e ∣ B 1 ) + P ( B l u e ∣ B 2 ) P ( B 2 ) P(B_1|Blue)=\frac{P(Blue|B_1)P(B_1)}{P(Blue|B_1)+P(Blue|B_2)P(B_2)} P(B1∣Blue)=P(Blue∣B1)+P(Blue∣B2)P(B2)P(Blue∣B1)P(B1)
将上述例子一般化之后就如下图所示:
若
x
x
x是蓝色,则
P
(
x
∣
C
1
)
=
4
5
P(x|C_1)=\frac{4}{5}
P(x∣C1)=54,
P
(
C
1
)
=
5
10
=
1
2
P(C_1)=\frac{5}{10}=\frac{1}{2}
P(C1)=105=21,
P
(
x
∣
C
2
)
=
2
5
P(x|C_2)=\frac{2}{5}
P(x∣C2)=52,
P
(
C
2
)
=
5
10
=
1
2
P(C_2)=\frac{5}{10}=\frac{1}{2}
P(C2)=105=21
通过上面的推论我们知道了如何求取一个新给的样本属于各个类别的概率,但上面所讲的是在一个封闭的系统( x x x只能从两个盒子里面抽取)里面的概率,且我们可以直接看出两个类别的概率分布。然而,在实际的应用中我们往往没有某一个类别精确的概率分布,我们的训练集也无法穷举所有的可能性,这时候就要求我们对一个类别求取一个最符合它样本分布的概率模型,以便我们在这个概率模型下计算 P ( x ∣ C i ) P(x|C_i) P(x∣Ci)。
如何求取概率模型
我们先假设数据的概率分布(正态、伯努利、播送、···),然后用概率公式去计算
x
x
x属于的类型
P
(
C
1
∣
x
)
P(C_1|x)
P(C1∣x)。
一般的,我们假设
x
x
x为高斯分布,这是由概率论中的中心极限定理所得来的。
多维高斯分布:
其中均值为
μ
\mu
μ,协方差为
∑
\sum
∑
这里举个例子来看一下不同的
μ
\mu
μ和
∑
\sum
∑对分布的影响:
接下来就是求取这个假设的分布中的参数
μ
\mu
μ和
∑
\sum
∑了,这里用极大似然估计来求取。比如说我们用某个模型生成了下图所示的79个样本点,那么我们的目的就是要求最有可能生成这79个样本点的模型,即求出这个模型的
μ
\mu
μ和
∑
\sum
∑。
这里我们用下面的极大似然估计的函数:
我们按照上式和两个类别的训练集来求出两个类别的极大似然估计函数的系数(第一个类别中有79个样本,第二个类别中有61个样本):
分类
接下来就可以将分布函数带入到贝叶斯函数中来进行分类了:
如果
P
(
C
1
∣
x
)
>
0.5
P(C_1|x)>0.5
P(C1∣x)>0.5则可以推出
x
x
x是属于第一类的。
但通常情况是两个模型会共用一个
∑
\sum
∑,那么似然函数就变成了:
这个式子中的
μ
1
\mu_1
μ1和
μ
2
\mu_2
μ2和上面的式子中是一样的,
∑
=
79
140
∑
1
+
61
140
∑
2
\sum=\frac{79}{140}\sum^1+\frac{61}{140}\sum^2
∑=14079∑1+14061∑2
这个时候就变成了线性分类:
可以看到上面的模型分类准确率并不高,这可能是特征值选取的比较少,在增加特征值之后会好很多。