贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础。朴素贝叶斯分类就是其中一种,之所以称为朴素, 是因为其思想很简单,且建立在两个看似鲁莽的假设之上。朴素贝叶斯认为,概率最大的那个类,就是待分类对象的所属类,且假设(1)所有特征属性统计独立;(2)所有特征属性同等重要,权重相同。这两个看似鲁莽的假设,在很多实际应用中却有很好的效果,因此朴素贝叶斯分类器任然被广泛使用。
一、理论基础
想必大家都应该很熟悉贝叶斯定理:
通过该定理,我们可以从P(A|B)求得P(B|A),而往往P(A|B)是比较容易直接求出的,P(B|A)却很难直接得到,这就是这个定理的价值所在。将这个定理用到分类问题中,可以重写为:
其中Ci表示第i个类别,w表示一组特征属性,即 w = { a1, a2, a3, ......}。上式可以这样解释:
在实际使用中,w出现的概率即P(w)一般不考虑,因为其对所有类别都是相等的,要比较概率的大小,只需比较上式中的分子即可。
现在的问题就是,如何求得分子中的两项。
我们知道w是一组特征属性,我们将其展开写为下式:
还记得朴素贝叶斯的两个假设吗,所有特征属性统计独立且权重相同,由此我们可以得到:
因此,我们只需在训练时,统计每一个类别中每一个特征属性的频率,然后将他们乘起来即可。
对于p(ci)的求取,很是简单,只需统计训练样本中ci类别出现的频率即可。
实际上,以上方法是不完整的,只对特征属性都是二值分布(取值只有0和1)时适用,即只适用于离散情况下的分类。完整的,我们应该将p( aj | ci )看做一个概率分布,而不仅仅只是一个概率,这样,当特征属性是连续值时,应该通过概率分布来求得当前属性值所对应的概率。一般的,我们假设连续特征属性的概率分布为正态分布,也即高斯分布: