博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
朴素贝叶斯文本分类算法学习
阅读量:6654 次
发布时间:2019-06-25

本文共 1740 字,大约阅读时间需要 5 分钟。

一.Naive Bayes基础知识

可以参考上篇文章【朴素贝叶斯分类器的应用】(回复068即可查看),此处略详细内容。

二.朴素贝叶斯的两种模型

朴素贝叶斯分类器是一种有监督学习,常见有两种模型。

  1. 多项式模型(multinomial model)即为词频型。

  2. 伯努利模型(Bernoulli model)即文档型。

二者的计算粒度不一样,多项式模型以单词为粒度,伯努利模型以文件为粒度,因此二者的先验概率和类条件概率的计算方法都不同。计算后验概率时,对于一个文档d,多项式模型中,只有在d中出现过的单词,才会参与后验概率计算,伯努利模型中,没有在d中出现,但是在全局单词表中出现的单词,也会参与计算,不过是作为“反方”参与的。

多项式模型和贝努利模型的关键区别:

1.贝努利模型是以“文档”为统计单位,即统计某个特征词出现在多少个文档当中 (最大似然方法估计条件概率p(x(i)|c)的时候),当某个特征词在某一个文档中出现多次的时候,贝努利模型忽略了出现的次数,只算作一次。而多项式模型是以“词”为统计单位,当某个特征词在某个文档中多次出现的时候,与贝努利模型相反,它算作多次——这个更符合做NLP人的想法。

2.对特征向量中0值维度的处理。对于某个新的输入样本,当某个维度的取值是0的时候(也就是该特征词不出现在输入样本中),贝努利模型是要计算 p( x(i,0) | c(0)) 的值。而多项式模型直接忽略这样的特征,即只用 p( x(i,1) | c(0) ) 的值来进行计算,从而区分各个类别。

注意:朴素贝叶斯假设事物属性之间相互条件独立为前提。

三.多项式模型

1.基本原理

在多项式模型中, 设某文档d=(t1,t2,…,tk),tk是该文档中出现过的单词,允许重复,则

先验概率P(c)= 类c下单词总数/整个训练样本的单词总数

类条件概率P(tk|c)=(类c下单词tk在各个文档中出现过的次数之和+1)/(类c下单词总数+|V|)

V是训练样本的单词表(即抽取单词,单词出现多次,只算一个),|V|则表示训练样本包含多少种单词。 P(tk|c)可以看作是单词tk在证明d属于类c上提供了多大的证据,而P(c)则可以认为是类别c在整体上占多大比例(有多大可能性)。

2.举例

给定一组分好类的文本训练数据,如下:

给定一个新样本Chinese Chinese Chinese Tokyo Japan,对其进行分类。该文本用属性向量表示为d=(Chinese, Chinese, Chinese, Tokyo, Japan),类别集合为Y={yes, no}。

类yes下总共有8个单词(5个Chinese+1个Beijing+1个Shanghai+1个Macao),类no下总共有3个单词(1个Tokyo+1个Japan+1个Chinese),训练样本单词总数为11,因此P(yes)=8/11, P(no)=3/11。类条件概率计算如下:

分母中的8,是指yes类别下所有词出现的总数,也即训练样本的单词总数,6是指训练样本有Chinese,Beijing,Shanghai, Macao, Tokyo, Japan 共6个单词,3是指no类下共有3个单词。

有了以上类条件概率,开始计算后验概率:

比较大小,即可知道这个文档属于类别china。

四.伯努利模型

1.基本原理

以文件为粒度,或者说是采用二项分布模型,伯努利实验即N次独立重复随机实验,只考虑事件发生/不发生,所以每个单词的表示变量是布尔型的类条件概率。

P(c)= 类c下文件总数/整个训练样本的文件总数

P(tk|c)=(类c下包含单词tk的文件数+1)/(类c下文件总数+2)

备注:P(tk|c) 中的(类c下文件总数+2) 不是网上流传的(类c下单词总数+2)。

2.举例

继续以前面的例子为例,使用伯努利模型计算文本分类。

类yes下总共有3个文件,类no下有1个文件,训练样本文件总数为11,因此P(yes)=3/4, P(Chinese | yes)=(3+1)/(3+2)=4/5,条件概率如下:

有了以上类条件概率,开始计算后验概率,

因此,这个文档不属于类别china。

转载地址:http://kiato.baihongyu.com/

你可能感兴趣的文章
puppet 简单使用
查看>>
Laravel 5.2 教程 - 邮件
查看>>
Linux SSH批量分发管理
查看>>
指定域控制器登录
查看>>
10 alternative careers for burned-out IT workers
查看>>
我的友情链接
查看>>
AngularJS第四课:应用模块化
查看>>
《模式 工程化实现及扩展 (设计模式 C#版)》 - 书摘精要
查看>>
Spring Boot 配置文件 – 在坑中实践
查看>>
mysql二进制日志(bin-log)配置及相关操作
查看>>
LVM+Xen虚拟化应用
查看>>
证书服务器CA的搭建和管理
查看>>
存储过程调用遇到的坑
查看>>
月薪3千与3万文案的区别!一字千金就体现在细微之处
查看>>
***经验16.5.2总结
查看>>
thunar、nautilus右键添加 "压缩/解压"菜单
查看>>
基于jQuery的waterfall(瀑布流)布局
查看>>
heartheat+drbd高可用存储
查看>>
打包压缩
查看>>
将ip转为整数以及整数转为ip的java实现
查看>>