原文链接:
1. 词袋模型
http://chant00.com/2017/09/18/%E8%B4%9D%E5%8F%B6%E6%96%AF/

2. 朴素贝叶斯计算嫁人概率

https://zhuanlan.zhihu.com/p/26329951

3. 朴素贝叶斯开发python实例以及注意的问题

https://zhuanlan.zhihu.com/p/27906640

很傻很天真却很很好很强大的贝叶斯定理。。。


机器学习算法中,有种依据概率原则进行分类的朴素贝叶斯算 法,正如气象学家预测天气一样,朴素贝叶斯算法就是应用先 前事件的有关数据来估计未来事件发生的概率

基于朴素贝叶斯的垃圾邮件分类

BoW(词袋)模型

Bag-of-words model (BoW model) 最早出现在自然语言处理(Natural Language Processing)和信息检索(Information Retrieval)领域.。该模型忽略掉文本的语法和语序等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立的。BoW使用一组无序的单词(words)来表达一段文字或一个文档。

假设我们词库中只有四个单词I,don’t,love,you,分别用符号w1,w2,w3,w4意义对应表示,那么一封邮件就可以由这四个单词是否出现来表示,如:$w1\bigcap \neg w2 \bigcap w2 \bigcap w3$就表示文档I love you,而$w1\bigcap w2 \bigcap w2 \bigcap w3$就表示文档I don't love you

我们将单词出现的频率视为它出现的概率,如下图则P(Viagra)=5%。
如果我们知道P(垃圾邮件)和P(Viagra)是相互独立的, 则容易计算P(垃圾邮件&Viagra),即这两个事件同时发生 的概率。20%*5%=1%

独立事件我们可以简单的应用这个方法计算,但是在现实中, P(垃圾邮件)和P(Viagra)更可能是高度相关的,因此上述计算是不正确的,我们需要一个精确的公式来描述这两个事件之间的关系。

贝叶斯公式

垃圾邮件中的朴素贝叶斯公式

P(spam)为先验概率,P(spam|Viagra)为在Viagra单词出现后的后验概率。如果你不懂什么是先验概率和后验概率,请戳那些年被教科书绕晕的概率论基础

计算贝叶斯定理中每一个组成部分的概率,我们必须构造一个频率表

计算贝叶斯公式

P(垃圾邮件|Viagra)=P(Viagra|垃圾邮件)*P(垃圾邮件)/P(Viagra)=(4/20)*(20/100)/(5/100)=0.8
因此,如果电子邮件含有单词Viagra,那么该电子邮件是垃圾 邮件的概率为80%。所以,任何含有单词Viagra的消息都需 要被过滤掉。
当有额外更多的特征是,这一概念如何被使用呢?

利用贝叶斯公式,我们得到概率如下:

虽然我们写作时,相邻单词之间其实是有关联的,但是为了方便建立模型,我们假设单词的出现是相互独立,这也是Naive Bayes的Naive之处,很傻很天真,但是在实际应用中却发现其效果很好很强大。由于相互独立,那么就可以转化为接下来的公式:

• 分母可以先忽略它,垃圾邮件的总似然为:
(4/20)*(10/20)*(20/20)*(12/20)*(20/100)=0.012
• 非垃圾邮件的总似然为:
(1/80)*(66/80)*(71/80)*(23/80)*(80/100)=0.002
• 将这些值转换成概率,我们只需要一步得到垃圾邮件概率为 0.012/(0.012+0.002)=85.7%

存在的问题

另一个例子包含了4个单词的邮件呢?
• 我们可以计算垃圾邮件的似然如下:
(4/20)*(10/20)*(0/20)*(12/20)*(20/100)=0
• 非垃圾邮件的似然为:
(1/80)*(14/80)*(8/80)*(23/80)*(80/100)=0.00005
• 因此该消息是垃圾邮件的概率为0/(0+0.00005)=0
• 该消息是非垃圾邮件的概率为0.00005/(0+0.00005)=1
• 问题出在Groceries这个单词,所有单词Grogeries有效抵消或否决了所有其他的证据。

拉普拉斯估计

而这个错误的造成是由于训练量不足,会令分类器质量大大降低。为了解决这个问题,我们引入Laplace校准(这就引出了我们的拉普拉斯平滑),它的思想非常简单,就是对没类别下所有划分的计数加1,这样如果训练样本集数量充分大时,并不会对结果产生影响,并且解决了上述频率为0的尴尬局面。

引入拉普拉斯平滑的公式如下:

其中ajl,代表第j个特征的第l个选择,代表第j个特征的个数,K代表种类的个数。

为1,这也很好理解,加入拉普拉斯平滑之后,避免了出现概率为0的情况,又保证了每个值都在0到1的范围内,又保证了最终和为1的概率性质!

本文的情况是,由于词袋里一共是4个词,因此Sj = 4. 由于最终结果有两个分类,因此K = 2.

理解:

拉普拉斯估计本质上是给频率表中的每个计数加上一个较小的数,这样就保证了每一类中每个特征发生概率非零。
通常情况下,拉普拉斯估计中加上的数值设定为1,这样就保证每一类特征的组合至少在数据中出现一次
• 然后,我们得到垃圾邮件的似然为:
(5/24)*(11/24)*(1/24)*(13/24)*(20/100)=0.0004
• 非垃圾邮件的似然为:
(2/84)*(15/84)*(9/84)*(24/84)*(80/100)=0.0001
• 这表明该消息是垃圾邮件的概率为80%,是非垃圾邮件的概率为20%。

开发时应注意的问题:

注意这里对于基本的条件概率直接相乘有两处改进:

  1. 拉普拉斯平滑:各个特征的概率初始值为1,分母上统计的某一类型的样本总数的初始值是1,这是为了避免如果有一个特征统计的概率为0,则联合概率也为零那自然没有什么意义了, 如果训练样本足够大时,并不会对比较结果产生影响.
  2. 概率转为对数:由于各个独立特征的概率都是小于1的数,累积起来必然会是个更小的书,这会遇到浮点数下溢的问题,因此在这里我们对所有的概率都取了对数处理,这样在保证不会有损失的情况下避免了下溢的问题。
应用举例:

例如:https://zhuanlan.zhihu.com/p/26329951

四个特征集合分别长相{帅,不帅}、性格{爆好,好,不好}、身高{高,中,矮}、上进与否{上进,不上进}

由于样本不足,因此性格为“爆好”的样本为0.

如果比较p(嫁|长相帅,性格爆好,身高高,上进)与p(不嫁|长相帅,性格爆好,身高高,上进)的概率大小,按照贝叶斯定理

没有一个数据有爆好这个特点的,那么p(性格爆好|嫁) = 0,我们最后的p(嫁|长相帅、性格爆好、身高高、上进)由于一项p(性格爆好|嫁)为0,而造成整个概率为0,这显然是错误的。

现在我们是加入拉普拉斯平滑,

我们先需要分别计算p(性格爆好|嫁)、p(长相帅|嫁)、p(身高高|嫁)、p(上进|嫁),p(嫁),p(性格爆好|嫁)=?统计满足要求的如下面红色部分

没有一个满足是性格爆好的条件,但是此时概率不为0,按照加入拉普拉斯平滑后的公式:

性格特征的个数为爆好,好,不好,三种情况,那么为3,则最终概率为1/9 (嫁的个数为6+特征个数为3)

p(长相帅|嫁)=?统计满足条件的如下面红色部分:

由上图可知满足要求的为3个,按照加入拉普拉斯平滑后的公式:

长相特征的个数为帅,不帅,俩种情况,那么为2,则最终概率p(长相帅|嫁)为4/8 (嫁的个数为6+特征个数为2)

p(身高高|嫁) = ?统计满足条件的如下面红色部分:

由上图可知满足要求的为3个,按照加入拉普拉斯平滑后的公式:

身高特征的个数为高,中,矮情况,那么为3,则最终概率p(身高高|嫁)为4/9 (嫁的个数为6+特征个数为3)

p(上进|嫁)=?统计满足要求的如下面红色部分:

由上图可知满足要求的为5个,按照加入拉普拉斯平滑后的公式:

上进特征的个数为上进,不上进情况,那么为2,则最终概率p(上进|嫁)为6/8 (嫁的个数为6+特征个数为2)

p(嫁) = ?满足要求的如下红色标注:

由上图可知满足要求的为6个,按照加入拉普拉斯平滑后的公式:

种类的个数为嫁,不嫁情况,那么K为2,则最终概率p(嫁)为7/14 = 1/2 (嫁的个数为6+种类个数为2)

到这里为止,我们已经算出了在该男生条件下,嫁的概率为:

p(嫁|长相帅、性格爆好、身高高、上进) = 1/9*4/8*4/9*6/8*1/2

p(不嫁|长相帅、性格爆好、身高高、上进) 同理。见原文https://zhuanlan.zhihu.com/p/26329951。

转载于:https://www.cnblogs.com/misszhu-home/p/7693168.html

机器学习--朴素贝叶斯分类,以及拉普拉斯校准相关推荐

  1. 机器学习——朴素贝叶斯分类

    一贝叶斯原理 1.1贝叶斯原理产生背景: 贝叶斯原理是英国数学家托马斯·贝叶斯提出的,他写的一篇关于归纳推理的论文直接影响了接下来两个多世纪的统计学,是科学史上著名的论文之一. 贝叶斯原理是贝叶斯为了 ...

  2. 机器学习 --- 朴素贝叶斯分类器 python

    简介 朴素贝叶斯分类算法是基于贝叶斯理论和特征条件独立假设的分类算法.对于给定的训练集,首先基于特征条件独立假设学习数据的概率分布.然后基于此模型,对于给定的特征数据x,利用贝叶斯定理计算出标签y.朴 ...

  3. 机器学习 朴素贝叶斯分类食品安全新闻

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 一.预备知识 1.基本概念 2.贝叶斯公式 二.朴素贝叶斯原理 1.判别模型和生成模型 2.贝叶斯分类器 2.1 ...

  4. 机器学习-朴素贝叶斯分类

    # coding=utf-8#朴素贝叶斯分类,P(ci|X)=P(X|ci)*P(ci)/P(X),因为P(X)与类无关,每个样本对各个类的概率一样. #假设各特征相互独立,对一样本的不同类,可求P( ...

  5. 【数据挖掘】拉普拉斯修正 ( 判别模型 | 概率模型 | 贝叶斯分类 | 拉普拉斯修正 | 朴素贝叶斯分类应用场景 | 朴素贝叶斯优缺点 )

    文章目录 I . 判别模型 与 概率模型 II . 贝叶斯分类 III . 拉普拉斯修正 IV . 使用 朴素贝叶斯分类器 + 拉普拉斯修正 为样本分类 ( 完整分类流程 ) V . 朴素贝叶斯分类器 ...

  6. 机器学习 —— 基础整理(二)朴素贝叶斯分类器;文本分类的方法杂谈

          上一篇博客复习了贝叶斯决策论,以及生成式模型的参数方法.本篇就给出一个具体的例子:朴素贝叶斯分类器应用于文本分类.后面简单谈了一下文本分类的方法. (五)朴素贝叶斯分类器(NaïveBay ...

  7. 朴素贝叶斯分类实验(垃圾邮件分类以及垃圾短信过滤数据集)

    文章目录 贝叶斯公式 先验概率 后验概率 贝叶斯定理 朴素贝叶斯分类器 拉普拉斯修正 防溢出策略 实现垃圾邮件分类 实现垃圾短信过滤(SMS数据集) 实验总结 贝叶斯公式 先验概率 P(cj)P(c_ ...

  8. 机器学习-朴素贝叶斯分类器

    机器学习-朴素贝叶斯分类器 概述 定义 贝叶斯方法 朴素贝叶斯算法 算法原理 优缺点 优点 缺点 应用 文本分类 其他 概述 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法. 朴素贝叶斯分类 ...

  9. 机器学习之朴素贝叶斯(一):朴素贝叶斯的介绍、概率基础(拉普拉斯平滑)、sklearn朴素贝叶斯实现API、朴素贝叶斯分类的优缺点、文本的特征工程

    朴素贝叶斯 文章目录 朴素贝叶斯 一.介绍 1.1 文本分类的应用 词云的例子 垃圾邮件分类 文章类别的概率 二.概率基础 2.1 概率例题 2.2 联合概率和条件概率 2.3 朴素贝叶斯-贝叶斯公式 ...

最新文章

  1. html css js实现快递单打印_html+css+js实现计算器
  2. Python操作SQLite3
  3. 9102年webpack4搭建vue项目
  4. Spark源码阅读04-Spark运行架构之Standalone运行模式
  5. 夯实JavaScript基础之prototype, __proto__, instanceof
  6. mysql update使用select的结果
  7. 不同品牌发电机组间的并机知识
  8. emit传参,获取返回值
  9. call() , apply() ,bind()的用法
  10. c语言delay_单片机模拟流星雨,电路图和程序,一起来感受下,其实C语言不难...
  11. JAX-WS(三)构建简单webservice部署到tomcat上
  12. MySQL INFORMATION_SCHEMA信息数据库
  13. tomcat7.0设置多域名指向同IP不同项目
  14. rand()和srand()GetTickCount函数用法
  15. 微信公众号引流的平台有哪些?
  16. EditPlus常用技巧
  17. python实现——视频转桌面壁纸
  18. 五、NLP聊天语料处理
  19. 99%网赚精准引流技巧!
  20. 小程序成四大行业商家标配,小程序代理市场如何

热门文章

  1. (15)带列主元的LU分解
  2. 雷蛇灯光配置文件_信仰绿轴?雷蛇RAZER黑寡妇蜘蛛X竞技版(背光款)点评
  3. Bootstrap4使用Bootstrap-table时不显示图标
  4. 【装机】【华硕TUF b450m-pro】新增固态硬盘之后机械盘无法显示
  5. 如何科学的使用LMD DockingPack | 附下载
  6. 网站信息无障碍辅助工具
  7. 张钹院士:人工智能独角兽为何不赚钱
  8. opencv的安装+pycharm中安装cv2库
  9. IxChariot - 6.70 下载
  10. ipad哪个款性价比最高2021 更值得入手