java如何实现朴素贝叶斯 朴素贝叶斯算法改进_朴素贝叶斯算法


  机器学习算法与自然语言处理推荐 

作者:刘建平Pinard

【机器学习算法与自然语言处理导读】朴素贝叶斯算法是最经典的几个机器学习算法之一,本文对它的优点,缺点进行总结。

1.  朴素贝叶斯算法

朴素贝叶斯属于生成式模型(关于生成模型和判别式模型,主要还是在于是否需要求联合分布),比较简单,你只需做一堆计数即可。如果注有条件独立性假设(一个比较严格的条件),朴素贝叶斯分类器的收敛速度将快于判别模型,比如逻辑回归,所以你只需要较少的训练数据即可。即使NB条件独立假设不成立,NB分类器在实践中仍然表现的很出色。它的主要缺点是它不能学习特征间的相互作用,用mRMR中R来讲,就是特征冗余。引用一个比较经典的例子,比如,虽然你喜欢Brad Pitt和Tom Cruise的电影,但是它不能学习出你不喜欢他们在一起演的电影。

2.  优点

1. 朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率;

2. 对大数量训练和查询时具有较高的速度。即使使用超大规模的训练集,针对每个项目通常也只会有相对较少的特征数,并且对项目的训练和分类也仅仅是特征概率的数学运算而已;

3. 对小规模的数据表现很好,能个处理多分类任务,适合增量式训练(即可以实时的对新增的样本进行训练);

4. 对缺失数据不太敏感,算法也比较简单,常用于文本分类;

5. 朴素贝叶斯对结果解释容易理解。

3.  缺点

1. 需要计算先验概率;

2. 分类决策存在错误率;

3. 对输入数据的表达形式很敏感;

4. 由于使用了样本属性独立性的假设,所以如果样本属性有关联时其效果不好。

4.  应用领域

1. 欺诈检测中使用较多;

2. 一封电子邮件是否是垃圾邮件;

3. 一篇文章应该分到科技、政治,还是体育类;

4. 一段文字表达的是积极的情绪还是消极的情绪;

5. 人脸识别。

java如何实现朴素贝叶斯 朴素贝叶斯算法改进_数据_02