贝叶斯分类器
1 朴素贝叶斯
1.1 摘要
分类问题应用得算法很多,线性回归、逻辑回归、SVM、决策树、贝叶斯算法。线性回归和逻辑回归是利用了边界判定方法。SVM利用的也是边界判定,只不过利用了支持向量。决策树算法利用的是分类信息的信息增益方法。贝叶斯算法则是利用了概率判定方法,哪个概率大选择哪个。
1.2 贝叶斯分类的基础——贝叶斯定理
贝叶斯定理:已知某条件概率,如何得到两事件交换后的概率,即在已知P(A|B)的情况下如何求得P(B|A)。
贝叶斯定理之所以有用,是因为我们在生活中经常遇到这种情况:我们可以很容易直接得出P(A|B),P(B|A)则很难直接得出,但我们更关心P(B|A),贝叶斯定理就为我们打通从P(A|B)获得P(B|A)的道路。
1.3 朴素贝叶斯原理
思想基础:选择条件概率最大的类别
前提:对已知类别,所有属性相互独立
朴素贝叶斯分类的正式定义如下:
- 1、设
x={a1,a2,...,am}
为待分类项,a为x的特征属性
- 2、有类别集合
C={y1,y2,...yn}
,西瓜书上n=2,即判断只有好瓜坏瓜
- 3、在训练样本中统计在各类别下各个属性下的条件概率估计。即
4、根据贝叶斯公式可得
P(yi|x)=P(x|yi)P(yi)P(x)
因为P(x)为常数,则
P(x|yi)P(yi)=P(a1|yi)P(a2|yi)...P(am|yi)=P(yi)∏j=1mP(aj|yi)5、计算可得到 P(y1|x),P(y2|x),...,P(ym|x)
1.4 连续值特征属性划分的条件概率及Laplace校准
由以上分析可知,第三步计算训练样本中各类别各属性下的条件概率是最关键的。若特征属性为离散值,可以很方便的统计其出现的频率估计
P(ai|yj)
,若特征值为连续值则:
通常假定其服从高斯分布(正态分布)。即:
另一个需要讨论的问题就是当P(a|y)=0怎么办,当某个类别下某个特征项划分没有出现时,就是产生这种现象,这会令分类器质量大大降低。为了解决这个问题,我们引入Laplace校准,它的思想非常简单,就是对没类别下所有划分的计数加1,这样如果训练样本集数量充分大时,并不会对结果产生影响,并且解决了上述频率为0的尴尬局面。
具体来说,另N表示训练集D中个可能的类别数(西瓜书上为2,好瓜坏瓜),
Ni
表示第i个属性可能的取值数,
Dy
表示训练集D中第c类样本组成的集合,则
2 半朴素贝叶斯 分类
在朴素的分类中,我们假定了各个属性之间的独立,这是为了计算方便,防止过多的属性之间的依赖导致的大量计算。这正是朴素的含义,虽然朴素贝叶斯的分类效果不错,但是属性之间毕竟是有关联的,某个属性依赖于另外的属性,于是就有了半朴素贝叶斯分类器。
为了计算量不至于太大,假定每个属性只依赖另外的一个。这样,更能准确描述真实情况。
其中 pai 为属性 xi 所依赖的属性,称为 xi 的父属性。
在正式进行计算的时候,将另外一个依赖的属性加进去,计算量不会复杂太多,由于是基于“计数”,所以基本和朴素的计算方式类似。
确定如何依赖:
1.SOPDE方法。这种方法是假定所有的属性都依赖于共同的一个父属性。
2.TAN方法。每个属性依赖的另外的属性由最大带权生成树来确定。
(1)先求每个属性之间的互信息来作为他们之间的权值。
(2)构件完全图。权重是刚才求得的互信息。然后用最大带权生成树算法求得此图的最大带权的生成树。
(3)找一个根变量,然后依次将图变为有向图。
(4)添加类别y到每个属性的的有向边。
上图是三种方法的属性依赖关系。