一、朴素贝叶斯法
1.定义:
朴素贝叶斯法 基于(1)贝叶斯定理和(2)特征条件独立假设的分类方法。
2.具体分类步骤:
(1)对于给定的训练数据集,学习先验概率P(Y),基于特征条件独立假设学习到条件概率分布P(X|Y),相乘得到联合概率分布P(X,Y).
条件概率分布:
这里,假设特征之间是相互独立的事件。
P(X|Y)和P(Y)相乘,得到联合概率分布。
(2)对于给定的x,根据贝叶斯定理,将实例分配到后验概率最大的类中,即最大的P(y|X)对应的y。
后验概率计算如下:
由于分母是求和的形式,每个类的分母都等于P(X),故只用比较分子。
所以化简的分类器为:
3.朴素贝叶斯分类算法:
4.如何计算2中的先验概率和条件概率
通常使用极大似然估计或贝叶斯估计。极大似然估计就是传统的频率估计概率,而贝叶斯估计是在前者的基础上加入了拉普拉斯平滑。
(1) 极大似然估计:
(2)贝叶斯估计
其中,条件概率分母的
5.注意点
(1)朴素贝叶斯哪里“朴素”?
朴素贝叶斯对条件概率分布做了条件独立(特征独立)的假设,这是个很强的假设,这使得该分类方法变得很简单,所以称为“朴素”。但是会牺牲一定的分类精确度。
(2)生成模型:朴素贝叶斯实际上学习到生成数据的机制,因此属于生成模型。
(3)后验概率最大化等价于 期望的错误风险最小化。
(4)特征每种取值的初始化:
如果其中一个概率值为 0,那么最后的乘积也为 0。为降低这种影响,可以将所有词的出现数初始化为 1,并将分母初始化为 2。
(5)“下溢出”的问题:
这是由于太多很小的数相乘造成的。当计算乘积 p(w0|ci) * p(w1|ci) * p(w2|ci)... p(wn|ci) 时,由于大部分因子都非常小,所以程序会下溢出或者得到不正确的答案。一种解决办法是对乘积取自然对数。在代数中有 ln(a * b) = ln(a) + ln(b), 于是通过求对数可以避免下溢出或者浮点数舍入导致的错误。同时,采用自然对数进行处理不会有任何损失。
6.应用场景:
(1)屏蔽社区留言板的侮辱性言论的句子。
(2)使用朴素贝叶斯过滤垃圾邮件。
(3)使用朴素贝叶斯分类器从个人广告中获取区域倾向。
参考目录: