朴素贝叶斯(NB)复习总结
摘要:
1.算法概述
2.算法推导
3.算法特性及优缺点
4.注意事项
5.实现和具体例子
6.适用场合
内容:
1.算法概述
贝叶斯分类算法是统计学的一种分类方法,其分类原理就是利用贝叶斯公式根据某对象的先验概率计算出其后验概率,然后选择具有最大后验概率的类作为该对象所属的类。
之所以称之为"朴素",是因为贝叶斯分类只做最原始、最简单的假设:所有的特征之间是统计独立的(假设某样本x有a1,...,aM个属性,那么有:P(x)=P(a1,...,aM) = P(a1)*...*P(aM);)
这里给出NB的模型函数:
根据变量的分布不同,NB也分为以下3类:
朴素贝叶斯的伯努利模型(特征是布尔变量,符合01分布),在文本分类的情境中,特征是词是否出现
朴素贝叶斯的多项式模型(特征是离散变量,符合多项分布),在文本分类的情境中,特征是词的出现次数
朴素贝叶斯的高斯模型(特征是连续变量,符合高斯分布),在文本分类的情境中,特征是词的TFIDF值
2.算法推导
贝叶斯定理:
其中P(y|x)是在x发生的情况下y发生的可能性。
在贝叶斯定理中,每个名词都有约定俗成的名称:
P(y)是y的先验概率或边缘概率。之所以称为"先验"是因为它不考虑任何x方面的因素。
P(y|x)是已知x发生后y的条件概率,也由于得自x的取值而被称作y的后验概率。
P(x|y)是已知y发生后x的条件概率,也由于得自y的取值而被称作x的后验概率。
P(x)是x的先验概率或边缘概率,也作标准化常量(normalizing constant).
由贝叶斯公式和各特征相互独立的情况下,得到如下公式:
条件概率的计算方法:
1,离散分布-当特征属性为离散值时,只要统计训练样本中特征a的各个特征值在每个类别中出现的频率即可用来估计P(a(i)|y(k))。
2,连续分布-当特征属性为连续值时,通常假定a|y服从高斯分布(正态分布)。
即:,而
3.算法特性及优缺点
优点:
1.算法简单
2.所需估计参数很少
3.对缺失数据不太敏感
4.朴素贝叶斯的条件概率计算彼此是独立的,因此特别适于分布式计算
5.朴素贝叶斯属于生成式模型,收敛速度将快于判别模型(如逻辑回归)
6.天然可以处理多分类问题
缺点:
1.因为朴素贝叶斯分类假设样本各个特征之间相互独立,这个假设在实际应用中往往是不成立的,从而影响分类正确性
2.不能学习特征间的相互作用
3.对输入数据的表达形式很敏感。
4.注意事项
4.1 取对数:
实际项目中,概率P往往是值很小的小数,连续的小数相乘容易造成下溢出使乘积为0或者得不到正确答案。一种解决办法就是对乘积取自然对数,将连乘变为连加,ln(AB)=lnA+lnB。
4.2 Laplace校准:
如果新特征出现,会导致类别的条件概率为0,最终出现0/0 未定义的情况 ;修改后的的表达式为:每个z=j的分子都加1,分母加k(类别的个数)。
5.实现和具体例子
垃圾邮件过滤:吴恩达的斯坦福公开课
6.适用场合
是否支持大规模数据:支持,并且有分布式实现
特征维度:可以很高
是否有 Online 算法:有(参考自)
特征处理:支持数值型,类别型类型