朴素贝叶斯原理及文本分类

贝叶斯公式(由条件概率公式推导出来):朴素贝叶斯原理及文本分类_第1张图片
贝叶斯原理是英国数学家托马斯·贝叶斯提出的,为了解决一个“逆概率”问题。
比如,已知一个学生没有喝酒,没有逛街,学习了,计算该学生是否会挂科,概率为多少。
根据贝叶斯公式可以得到:

朴素贝叶斯原理及文本分类_第2张图片
这里介绍一下先验概率、似然概率和后验概率。
朴素贝叶斯原理及文本分类_第3张图片
从图中可以看出先验概率是指在没有任何情况下挂科的概率,也就是样本总数据中挂科的概率;似然概率是指已知该同学已经挂科了,他没有喝酒,没有逛街,学习了的概率。**先验概率和似然概率均可以根据样本数据集来计算出来。**后验概率就是我们最终需要的结果,也就是已知某同学没有喝酒,没有逛街,学习了的情况下他挂科的概率。

朴素贝叶斯:
由于似然概率在计算的时候比较复杂,所以引入了朴素的概念:"朴素"的含义就是我们要说的条件独立性假设的概念。条件独立性假设是指特征之间的相互独立性假设,所谓独立,是指的是统计意义上的独立,即一个特征或者单词出现的可能性与它和其他单词相邻没有关系(喝酒,逛街和学习之间相互独立)。
根据相互独立性假设,我们的公式就可以进一步化简为:
在这里插入图片描述
在计算的时候分母对于挂科和不挂科来说是相同的,所以分母可以忽略,只计算分子。
另外,受训练数据集规模的限制,某个属性的取值可能在训练集中从未与某个类同时出现,这就可能导致属性条件概率为0,此时直接使用朴素贝叶斯分类就会导致错误的结论。
因为训练集样本的不充分导致分类错误,不是理想的结果,为了避免这种干扰,在计算属性条件概率时需要添加一个“拉普拉斯平滑”的步骤。拉普拉斯平滑就是计算类先验概率和属性条件概率时,在分子上添加一个较小的修正量,在分母上则添加这个修正量与分类数目的乘积,避免了零概率对分类结果的影响。

这里取8条数据作为训练数据:
朴素贝叶斯原理及文本分类_第4张图片
朴素贝叶斯原理及文本分类_第5张图片
朴素贝叶斯原理及文本分类_第6张图片
由计算可知,在没有喝酒,没有逛街,学习的情况下未挂科的概率要大一点。
同时朴素贝叶斯算法同样适用于进行文本的分类任务,在进行文档分类的过程中,整个文档(比如一封电子邮件)是实例,那么邮件中的单词就可以定义为特征。说到这里,我们有两种定义文档特征的方法。一种是词集模型,另外一种是词袋模型。顾名思义,词集模型就是对于一篇文档中出现的每个词,我们不考虑其出现的次数,而只考虑其在文档中是否出现,并将此作为特征;假设我们已经得到了所有文档中出现的词汇列表,那么根据每个词是否出现,就可以将文档转为一个与词汇列表等长的向量。而词袋模型,就是在词集模型的基础上,还要考虑单词在文档中出现的次数,从而考虑文档中某些单词出现多次所包含的信息(一篇文档中词条的出现次数也可能具有重要的信息)。

文本分类的过程:
1 拆分文本,准备数据
  要从文本中获取特征,显然我们需要先拆分文本,这里的文本指的是来自文本的词条,每个词条是字符的任意组合。词条可以为单词,当然也可以是URL,IP地址或者其他任意字符串。将文本按照词条进行拆分,根据词条是否在词汇列表中出现,将文档组成成词条向量,向量的每个值为1或者0,其中1表示出现,0表示未出现。
接下来,以新闻文本的敏感类型为例。对于每一个文本进行预测分类,类别六种(反动、贪腐、民生、恐暴、色情、其他)预测完成后,根据预测结果考虑文本敏感程度。
2 由词向量计算朴素贝叶斯用到的概率值(似然概率)
  这里,如果我们将之前的点(x,y)换成词条向量w(各维度的值由特征是否出现的0或1组成),在这里词条向量的维度和词汇表长度相同。

在这里插入图片描述
我们将使用该公式计算文档词条向量属于各个类的概率,然后比较概率的大小,从而预测出分类结果。首先,可以通过统计各个类别的文档数目除以总得文档数目,计算出相应的p(A);然后,基于条件独立性假设,将B展开为一个个的独立特征,那么就可以将上述公式写为p(B|A)=p(B0|A)p(B1|A)…p(Bn|A),这样就很容易计算,从而极大地简化了计算过程。
(在代码实现中是通过统计得到的向量与数据向量进行内积获取条件概率的相对值并进行相对比较做出决策的。)

3 针对算法的部分改进
计算概率时,需要计算多个概率的乘积以获得文档属于某个类别的概率,然后当其中任意一项的值为0,那么最后的乘积也为0.为降低这种影响,采用拉普拉斯平滑,在分子上添加a(一般为1),分母上添加ka(k表示类别总数),即在这里将所有词的出现数初始化为1,并将分母初始化为6*1=6。

解决下溢出问题,计算概率时,由于大部分因子都非常小,最后相乘的结果四舍五入为0,造成下溢出或者得不到准确的结果,所以,我们可以对成绩取自然对数,即求解对数似然概率。这样,可以避免下溢出或者浮点数舍入导致的错误。同时采用自然对数处理不会有任何损失。

你可能感兴趣的:(朴素贝叶斯原理及文本分类)