我们之前讨论了基于朴素贝叶斯的文本分类,也被称作多变量伯努利事件模型(multi-variate Bernoulli event model),我们首先假设,邮件是随机发送过来的(垃圾与非垃圾),所以有先验概率p(y),然后我们又认为,邮件里每一个单词是相互独立的,p(xi=1|y) =φi|y,一条讯息的概率是

这里,我们介绍一种新的模型,被称为多项式事件模型(multinomial event model).设xi为email里第i个词,所以i是一个整数,在{1, .. . , |V |}里取值,其中|V |是字典的长度,所以,一个长度为n的email就被描述成一个长度为n的向量

不同的文本有不同的n。

在新的模型里,我们依然有先验概率p(y),之后从多项式分布中生成X1(p(x1|y)),然后X2被选了出来且与X1独立同分布,之后重复这个过程。所以有了总的概率:

假设给定训练集:

则数据的似然函数为

极大似然估计为:

加入拉普拉斯平滑:

在简单得介绍了这两个模型的基本信息之后,我们再回顾一下朴素贝叶斯的概率框架:

首先,这种方法假设文本数据由一个参数模型生成,然后使用训练数据来计算模型参数的贝叶斯优化估计。基于这些估计,基于贝叶斯公式完成分类。两种方法都假设文本是由一个以θ为参数的混合模型生成的。混合模型是由混合成分组成的,cj属于C={c1,…,c|c|}。每一个成分被的一个真子集制约。一个文件di,以(1)为规则根据先验概率来选取一个成分,P(cj|θ) ,(2)展示了根据分布P(di|cj;θ)以及它的参数θ让混合成分生成一个文档。在所有混合成分里,通过概率的相加,我们可以规约一个文档的似然:

每一个文档都会有一个分类的标签。我们假设在种类与混合模型成分之间有一一对应关系,并用cj来表示第j个混合成分和第j个类。

在多变量伯努利事件模型中,给一个字典V,空间t的每一维,都与字典中的单词wt相一致,其中t属于{1,…,|V|}。文档di的维度t被写成Bit,从0,1中取值,代表单词wt在文档中是否出现。然后,我们又有了我们的独立性假设,所以有

我们给出一个训练集D={d1,…,d|D|},混合成分的参数被写成,取值范围为[0,1]。利用拉普拉斯平滑,给出贝叶斯优化估计:

对类cj,参数的极大似然估计:

类似的,我们对多项式事件模型,定义Nit为单词wt在文件di中出现的次数,有:

同样的,我们可以计算单词wt出现在类cj里的贝叶斯优化估计:

给出参数的估计,我们可以进行分类:

我们再讨论一下特征的选择:

当减少字典的大小时,特征选择就通过选取拥有最高的平均互信息的单词。所以我们就可以通过计算类别与文件之间的平均互信息和一个单词在文档中是否出现。我们定义C为一个所有类别中的随机变量,Wt为单词wt是否出现在文档中的随机变量,Wt的取值为{0,1},0代表不出现,1代表出现。平均互信息代表类别变量的熵H(C)与类别变量基于是否出现条件的熵H(C|Wt)的差:

多项式事件模型(multinomial event model)相关推荐

  1. 朴素贝叶斯模型 多元伯努利事件模型+多项式事件模型 Multi-Variate Bernoulli Event Model and Multinomial Event Model

    朴素贝叶斯模型(Naïve Bayes Models): 适用于离散分布的朴素贝叶斯模型是个概率模型.生成式模型.广泛用于文本分类,自然语言处理和模式识别. 生成式和判别式模型区别: 贝叶斯公式如下: ...

  2. 分类-3-生成学习-3-朴素贝叶斯模型、laplace平滑、多元伯努利事件模型、多项式事件模型

    参考 http://www.cnblogs.com/jerrylead 多元伯努利事件模型( multi-variate Bernoulli event model) 在 GDA 中,我们要求特征向量 ...

  3. 朴素贝叶斯.Laplace平滑.多项式事件模型

    <Andrew Ng 机器学习笔记>这一系列文章文章是我再观看Andrew Ng的Stanford公开课之后自己整理的一些笔记,除了整理出课件中的主要知识点,另外还有一些自己对课件内容的理 ...

  4. JavaScript 复习之 事件模型 和 Event对象

    事件模型 一.监听函数 js 有三种方法,可以为事件绑定监听函数 HTML 的 on- 属性 元素节点的事件属性,也可以指定监听函数 EventTarget.addEventListener() DO ...

  5. javascript中0级DOM和2级DOM事件模型浅析

    Javascript程序使用的是事件驱动的设计模式,为一个元素添加事件监听函数,当这个元素的相应事件被触发那么其添加的事件监听函数就被调用: <input type="button&q ...

  6. Multinomial Logit Model (MNL) 模型R语言nnet包multinom函数实现实例

    最近做项目涉及到要使用multinomial logit model (MNL) 模型.看了一堆文献讲mnl, 但是没有给什么具体能上手的实例,就算有也是一笔带过,打算找一些使用R 语言来实现mnl模 ...

  7. 浅谈Opencl四大模型之Programming Model

    Opencl 平台模型解决了 硬件兼容问题,将各种硬件抽象成了模型:执行模型解决了opencl程序如何运行的问题:内存模型解决了opencl 内存管理 问题,而编程模型(programming mod ...

  8. 事件抽取(event extraction)

    前言: 事件抽取是由触发词和事件元素组成,目前来看,包括了提示学习的方法和传统方法 Execute 事件由"执行"一词触发,该事件包含三个参数角色,包括执行执行的代理(印度尼西亚) ...

  9. 【基础知识】事件模型

    DOM树[Document Object Model] 介绍事件模型之前,先简单看下DOM树的结构: DOM树就像是一颗倒长着的大树,这样的对象模型决定了节点之间都有一定的关联.它们关系可能有父子.有 ...

最新文章

  1. 高水平文章发表必备-数据分析和文献解读技巧
  2. python socket coding
  3. Spring Cloud Gateway(限流)
  4. excel对比_质量管理误区:SPC软件与微软Excel的应用对比
  5. C++模板类嵌套类内部类局部类的区别
  6. 绝地求生进游戏显示服务器未正常运行,绝地求生BE服务器未正常运行怎么办 BE服务器未运行解决方法...
  7. linux虚拟机如何ping,linux虚拟机与真机互相ping的问题
  8. 尚硅谷谷粒商城项目介绍
  9. 三款较好的代码比较工具Beyond compare、DiffMerge、WinMerge
  10. oracle 中dummy,layout设计中dummy的作用详解(上图。好贴好贴,讲的很仔细)
  11. 挖矿病毒audiodg.exe\taskhost.exe溯源与手动查杀方法
  12. 银达汇智 智慧综合管理平台 FileDownLoad.aspx 任意文件读取漏洞
  13. 在CentOS下运行exe的方法
  14. 小猿圈python视频_小猿圈分享学习Python的最佳方式
  15. 【Security】操作系统安全
  16. 「转行程序员」30岁想转行还能做什么?月入两万职位大比拼
  17. 四、从数字中发现规律?
  18. linux下make menuconfig在什么目录,make menuconfig/.config/Kconfig解析
  19. 变频器是如何节能的?
  20. STM32小项目总结4:TIM输入捕获测频率+占空比

热门文章

  1. mysql 表 rowid_SQLite数据表的rowid
  2. 条码打印软件如何实现条码数据彩色效果
  3. linux管道使用_如何在Linux上使用管道
  4. 用C语言写一个日期计算器
  5. java图片管理系统_基于Java Web技术的图片管理系统的设计与实现.doc
  6. 报考PMP?这些问题需了解
  7. 天空之门服务器维护通知,v6.3.0 新版本更新公告
  8. Windows操作命令(1)
  9. springboot实战—BMI体脂计算器-客户端
  10. 合并报表编制采用的理论_3.合并报表编制理论知识(必读)详解