0、概述
朴素贝叶斯是贝叶斯理论的一部分,所以讲述这部分内容之前首先需要了解一下贝叶斯定理。
贝叶斯定理是关于随机事件A和B的条件概率(或边缘概率)的一则定理。其中P(A|B)是在B发
生的情况下A发生的可能性。
描述两个条件概率之间的关系,比如 P(A|B) 和 P(B|A)。
按照乘法法则,可以立刻导出:
P(A∩B) = P(A)*P(B|A) = P(B)*P(A|B)
如上公式也可变形为:
P(B|A) = P(A|B)*P(B)/P(A)
朴素贝叶斯分类器基于一个简单的假定:给定目标值时属性之间相互条件独立。
1、介绍
1.1、工作原理
假设每个特征对于决定样本属于哪一类都同等重要。给定一个测试样本w,计算它属于c的概
率,只需要计算出训练样本中类别c的每个特征类型的概率p(w|c),所有训练样本中类别c的
概率p(c),测试样本w的概率(实际使用中比较样本w属于哪个类别的可能性更大,等号两边相等)
p(c|w) = p(w|c)p(c)/p(w)
1.2、优点,缺点,适用范围
优点:在数据较少的情况下仍然有效,可以处理多类别问题。
缺点:对于输入数据的准备方式较为敏感。
适用范围:标称型数据。
1.3、一般流程
收集数据:可以使用任何方法。
准备数据:需要数值型或者布尔型数据。
分析数据:有大量特征时,绘制特征作用不大,此时使用直方图效果更好。
训练算法:计算不同的独立特征的条件概率。
测试算法:计算错误率。
使用算法:常用于文档分类。可以在任意的分类场景中使用朴素贝叶斯分类器,不一定非要是文本。
2、实现
2.1、伪代码
1 | 计算每个类别中的文档数目 |
2.2、python实现
1 | def createVocabList(dataSet): |
3、总结
巧妙的运用概率的方法解决分类问题,朴素贝叶斯降低了条件概率计算的复杂度,并且正确率很好。