转自: https://www.zhenxiangsimple.com/2019/03/30/tech-ml-bysflq/
贝叶斯分类器是一类基于贝叶斯公式的分类算法的总称,它不是指某一个具体算法,基于贝叶斯订立的这些分类算法可以统称为贝叶斯分类。
贝叶斯公式
可以理解为高中数学中的条件概率公式,常规的应用可以理解为将先验概率转换为后验概率:
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)
贝叶斯决策论
从名称就可以知道,这是使用贝叶斯定理进行决策的一种方法论,简单说是在概率框架下进行的决策分类方法。使用的最优的分类器可以表示为:
h ( x ) = a r g m a x c ∈ y P ( c ∣ x ) = a r g m a x c ∈ y P ( x ∣ c ) P ( c ) P ( x ) h(x)=argmax_{c\in{y}}P(c|x)=argmax_{c\in{y}}\frac{P(x|c)P(c)}{P(x)} h(x)=argmaxc∈yP(c∣x)=argmaxc∈yP(x)P(x∣c)P(c)
极大似然估计
似然估计是一个比较常用的统计学参数估计的方法,用于解决当一件事情发生后,描述其发生的概率有多大的问题;算法本身是基于一个已知样本的概率分布函数,但不确定分布函数参数的样本,进行测试计算后得到分布函数的参数值。
朴素贝叶斯分类器
对样本增加一个假设:样本的所有属性条件之间相互独立,即每个属性独立的对样本的分类结果产生影响,因此可以得到如下的关系:
P ( x ∣ c ) = ∏ i = 1 d P ( x i ∣ c ) P(x|c)=\prod_{i=1}^{d}P(x_i|c) P(x∣c)=∏i=1dP(xi∣c)
因此,最终的分类器可以表示如下:
h ( x ) = a r g m a x c ∈ y P ( c ) P ( x ) ∏ i = 1 d P ( x i ∣ c ) h(x)=argmax_{c\in{y}}\frac{P(c)}{P(x)}\prod_{i=1}^{d}P(x_i|c) h(x)=argmaxc∈yP(x)P(c)∏i=1dP(xi∣c)
其中, P ( c ) = ∣ D c ∣ ∣ D ∣ , P ( x i ∣ c ) = ∣ D c , x i ∣ ∣ D c ∣ P(c)=\frac{|D_c|}{|D|},P(x_i|c)=\frac{|D_{c,x_i}|}{|D_c|} P(c)=∣D∣∣Dc∣,P(xi∣c)=∣Dc∣∣Dc,xi∣,若 P ( x i ∣ c ) P(x_i|c) P(xi∣c)中有一项为0,即某一个属性值在训练集中没有出现过,则会导致整个分类器的结果为0,为了解决这个问题,引入了拉普拉斯修正方法,即将 P ( c ) , P ( x i ∣ c ) P(c),P(x_i|c) P(c),P(xi∣c)对应的所有分类样本统一增加所有一个因子如下:
P ( c ) = ∣ D c ∣ + 1 ∣ D ∣ + N , P ( x i ∣ c ) = ∣ D c , x i ∣ + 1 ∣ D c ∣ + N i P(c)=\frac{|D_c|+1}{|D|+N},P(x_i|c)=\frac{|D_{c,x_i}|+1}{|D_c|+N_i} P(c)=∣D∣+N∣Dc∣+1,P(xi∣c)=∣Dc∣+Ni∣Dc,xi∣+1
其中,N表示训练集找那个所有类别数, N i N_i Ni表示第i个属性可能的取值数。
半朴素贝叶斯分类器
由于上面的朴素贝叶斯分类器要求所有属性完全独立,这种情况在实际情况中非常少见,通常一个样本的多样属性之间多多少少都会有一些相关性,因此为部分属性之间的强关系增加一些依赖信息,一方面忽略弱关系可以简化计算,另一方面也保留了最主要的关系。
贝叶斯网络
前面的半朴素贝叶斯分类器只是使用了部分属性之间的强关系,但还是有部分属性之间的关系被忽略了,为了能够将属性之间的关系更具体的描述出来,本算法使用数据结构中的图的概念来描述,图中每个节点由一个属性构成,若两个属性之间有关系,则节点之间就可以连成边。
若不确定网络结构,可以通过类似哈夫曼编码准则来选择一个网络。在确定了网络结构后,就相当于知道了各个属性之间的关系,则贝叶斯网络的学习过程相对简单,只需通过对训练样本进行计数,即可得出每个节点的条件概率表。在贝叶斯网络训练好之后,就可以直接通过已知属性的值精确计算得到待求解属性的值,从而实现分类。
EM算法
之前讨论的贝叶斯分类器中的样本属性都是完备的,如果出现某些属性的值为空,则无法直接进行求解,EM算法通过两步交替迭代进行求解,首先根据已有参数 θ \theta θ对未知变量值进行预测求解(Expectation),其次基于已知的观测值的样本进行模型求最大期望值,得到模型参数 θ \theta θ(Maximization),然后使用得到的参数再次进行变量值预测…直至模型收敛。