机器学习基础 之 贝叶斯分类器


转自:https://www.zhenxiangsimple.com/2019/03/30/tech-ml-bysflq/


  贝叶斯分类器是一类基于贝叶斯公式的分类算法的总称,它不是指某一个具体算法,基于贝叶斯订立的这些分类算法可以统称为贝叶斯分类。

贝叶斯公式

  可以理解为高中数学中的条件概率公式:
P(AB)=P(BA)P(A)P(B)P(A|B) = \frac{P(B|A) P(A)}{P(B)}

贝叶斯决策论

  从名称就可以知道,这是使用贝叶斯定理进行决策的一种方法论,简单说是在概率框架下进行的决策分类方法。使用的最优的分类器可以表示为:

h(x)=argmaxcyP(cx)=argmaxcyP(xc)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)}

极大似然估计

  似然估计是一个比较常用的统计学参数估计的方法,用于解决当一件事情发生后,描述其发生的概率有多大的问题;算法本身是基于一个已知样本的概率分布函数,但不确定分布函数参数的样本,进行测试计算后得到分布函数的参数值。

朴素贝叶斯分类器

  对样本增加一个假设:样本的所有属性条件之间相互独立,即每个属性独立的对样本的分类结果产生影响,因此可以得到如下的关系:

P(xc)=i=1dP(xic)P(x|c)=\prod_{i=1}^{d}P(x_i|c)

因此,最终的分类器可以表示如下:

h(x)=argmaxcyP(c)P(x)i=1dP(xic)h(x)=argmax_{c\in{y}}\frac{P(c)}{P(x)}\prod_{i=1}^{d}P(x_i|c)

其中,P(c)=DcD,P(xic)=Dc,xiDcP(c)=\frac{|D_c|}{|D|},P(x_i|c)=\frac{|D_{c,x_i}|}{|D_c|},若P(xic)P(x_i|c)中有一项为0,即某一个属性值在训练集中没有出现过,则会导致整个分类器的结果为0,为了解决这个问题,引入了拉普拉斯修正方法,即将P(c),P(xic)P(c),P(x_i|c)对应的所有分类样本统一增加所有一个因子如下:

P(c)=Dc+1D+N,P(xic)=Dc,xi+1Dc+NiP(c)=\frac{|D_c|+1}{|D|+N},P(x_i|c)=\frac{|D_{c,x_i}|+1}{|D_c|+N_i}

其中,N表示训练集找那个所有类别数,NiN_i表示第i个属性可能的取值数。

半朴素贝叶斯分类器

  由于上面的朴素贝叶斯分类器要求所有属性完全独立,这种情况在实际情况中非常少见,通常一个样本的多样属性之间多多少少都会有一些相关性,因此为部分属性之间的强关系增加一些依赖信息,一方面忽略弱关系可以简化计算,另一方面也保留了最主要的关系。

贝叶斯网络

  前面的半朴素贝叶斯分类器只是使用了部分属性之间的强关系,但还是有部分属性之间的关系被忽略了,为了能够将属性之间的关系更具体的描述出来,本算法使用数据结构中的图的概念来描述,图中每个节点由一个属性构成,若两个属性之间有关系,则节点之间就可以连成边。
  若不确定网络结构,可以通过类似哈夫曼编码准则来选择一个网络。在确定了网络结构后,就相当于知道了各个属性之间的关系,则贝叶斯网络的学习过程相对简单,只需通过对训练样本进行计数,即可得出每个节点的条件概率表。在贝叶斯网络训练好之后,就可以直接通过已知属性的值精确计算得到待求解属性的值,从而实现分类。

EM算法

  之前讨论的贝叶斯分类器中的样本属性都是完备的,如果出现某些属性的值为空,则无法直接进行求解,EM算法通过两步交替迭代进行求解,首先根据已有参数θ\theta对未知变量值进行预测求解(Expectation),其次基于已知的观测值的样本进行模型求最大期望值,得到模型参数θ\theta(Maximization),然后使用得到的参数再次进行变量值预测…直至模型收敛。

点击查看 (人工智能) 系列文章

机器学习基础 之 贝叶斯分类器