一、朴素贝叶斯
1. 原理:
朴素贝叶斯算法是一个典型的统计学习方法,主要理论基础就是一个贝叶斯公式,贝叶斯公式的基本定义如下:
公式的右边是先验概率
公式的左边是预测概率
如果把Y看成类别,X看成特征,P(Yk|X)就是在已知特征X的情况下求Yk类别的概率,而对P(Yk|X)的计算又全部转化到类别Yk的特征分布上来。
2. 朴素贝叶斯分类器
朴素贝叶斯分类器的表示形式:

当特征为x时,计算所有类别的条件概率,选取条件概率最大的类别作为待分类的类别。由于上面公式的分母对每个类别都是一样的,因此计算时可以不考虑分母,即

朴素贝叶斯的朴素体现在其对各个条件的独立性假设上,加上独立假设后,大大减少了参数假设空间。
3. 在文本分类上的应用
文本分类的应用很多,比如垃圾邮件和垃圾短信的过滤就是一个2分类问题,新闻分类、文本情感分析等都可以看成是文本分类问题,分类问题由两步组成:训练和预测,要建立一个分类模型,至少需要有一个训练数据集。贝叶斯模型可以很自然地应用到文本分类上:现在有一篇文档d(Document),判断它属于哪个类别ck,只需要计算文档d属于哪一个类别的概率最大:

在分类问题中,我们并不是把所有的特征都用上,对一篇文档d,我们只用其中的部分特征词项t1,t2,...,tnd(nd表示d中的总词条数目),因为很多词项对分类是没有价值的,比如一些停用词“的,是,在”在每个类别中都会出现,这个词项还会模糊分类的决策面,关于特征词的选取,我的这篇文章有介绍。用特征词项表示文档后,计算文档d的类别转化为:

注意P(Ck|d)只是正比于后面那部分公式,完整的计算还有一个分母,但我们前面讨论了,对每个类别而已分母都是一样的,于是在我们只需要计算分子就能够进行分类了。实际的计算过程中,多个概率值P(tj|ck)的连乘很容易下溢出为0,因此转化为对数计算,连乘就变成了累加:

我们只需要从训练数据集中,计算每一个类别的出现概率P(ck)和每一个类别中各个特征词项的概率P(tj|ck),而这些概率值的计算都采用最大似然估计,说到底就是统计每个词在各个类别中出现的次数和各个类别的文档的数目:

4. 朴素贝叶斯的优缺点
优点:
(1) 朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率;
(2) 对小规模的数据表现很好;
(3) 能处理多分类任务,适合增量式训练;
(4) 对缺失数据不太敏感,算法也比较简单,常用于文本分类
缺点:
(1) 只能用于分类问题;
(2) 需要计算先验概率;
(3) 分类决策存在错误率;
(4) 对输入数据的表达形式很敏感
二、 三种贝叶斯模型
1. 高斯分布朴素贝叶斯
高斯分布就是正态分布,用于一般分类问题
2. 多项式分布朴素贝叶斯
适用于文本数据(特征表示的是次数, 例如某个词语的出现次数)

3. 伯努利分布朴素贝叶斯
适用于伯努利分布,也适用于文本数据(此时特征表示的是是否出现,例如某个词语的出现为1, 不出现为0)
绝大多数情况下表现不如多项式分布,但有的时候伯努利分布表现要比多项式分布要好,尤其是对于小数量级的文本数据。
