1,前言
很久不发文章,整理些干货,希望相互学习吧。进入主题,本文主要时说的为朴素贝叶斯分类算法。与逻辑回归,决策树一样,是较为广泛使用的有监督分类算法,简单且易于理解(号称十大数据挖掘算法中最简单的算法)。但其在处理文本分类,邮件分类,拼写纠错,中文分词,统计机器翻译等自然语言处理范畴较为广泛使用()或许主要得益于基于概率理论),本文主要为小编从理论理解到实践的过程记录。
2,公式推断
贝叶斯定理预习知识:我们知道当事件A和事件B独立时,P(AB)=P(A)(B),若事件不独立,则P(AB)=P(A)P(B|A)。其为两件事件同时发生时的一般公式(无论事件A和B是否独立)。当然也可以写成P(AB)=P(B)P(A|B),表示若要两件事同事发生,则需要事件B发生后,事件A也要发生,由上可知:
P(A)P(B|A)= P(B)P(A|B)
推出P(B|A)=P(B)P(A|B)/ P(A)
其中P(B)为先验概率,P(B|A)为B的后验概率,P(A|B)为A的后验概率(在这里也为似然值),P(A)为A的先验概率(在这也为归一化常量),下面为朴素贝叶斯算法的数学推导过程:
式推断
由上推导可知,其实朴素贝叶斯法就是在贝叶斯定理基础上,加上特征条件独立假设,对特定输入的X(样本,包含N个特征),求出后验概率最大值时的类标签Y(如是否为垃圾邮件),理解起来比逻辑回归要简单多,有木有,这也是本算法优点之一,当然运行起来由于得益于特征独立假设,运行速度也更快。
3,参数估计
3.1. 极大似然估计:
至此,我们知道朴素贝叶斯方法的学习就是对概率P(Y=ck)和P(X(j)=x(j)|Y=ck)的估计。其实,我们可以用极大似然估计法估计上述先验概率和条件概率。
极大似然估计
其中I(x)为指示函数,若括号内成立,则计1,否则为0。李航的课本直接给出了用极大似然(MLE)估计求出的结果,并没给推导过程,具体推导过程可在知乎上搜索极大似然估计法推出朴素贝叶斯法中的先验概率估计公式。
3.2. 贝叶斯估计:
贝叶斯较为常见的问题为0概率问题。为此,需要平滑处理,主要使用拉普拉斯平滑,如下所示:
贝叶斯估计
K是类的个数,Sj是第j维特征的最大取值。实际上平滑因子λ=0即为最大似然估计,这时会出现提到的0概率问题;而λ=1则避免了0概率问题,这种方法被称为拉普拉斯平滑。
4,算法流程
算法流程
5,****素贝叶斯算法优缺点
优点&#