关键时刻,第一时间送达!阅读本文需要 8 分钟

说起朴素贝叶斯,很多人会被它复杂的公式和易混淆的概念搞得晕头转向、不知所以。本文,我将以最通俗的语言,尽量减少复杂公式的使用,白话讲解朴素贝叶斯算法的原理,并通过实际的例子,利用朴素贝叶斯思想,解决机器学习问题。让你快速对朴素贝叶斯有直观且形象的理解。

1买瓜问题

首先,我们要介绍两个数学概念:先验概率、后验概率。是不是又要晕乎乎了?没关系,我们通过一个例子来帮助你理解这两种概率。

最近天气炎热,红色石头来到超市准备买个西瓜,可是没有太多的经验,不知道怎么样才能挑个熟瓜。这时候,作为理科生,红色石头就有这样的考虑:

如果我对这个西瓜没有任何了解,包括瓜的颜色、形状、瓜蒂是否脱落。按常理来说,西瓜成熟的概率大概是 60%。那么,这个概率 P(瓜熟) 就被称为先验概率。

也就是说,先验概率是根据以往经验和分析得到的概率,先验概率无需样本数据,不受任何条件的影响。就像红色石头只根据常识而不根据西瓜状态来判断西瓜是否成熟,这就是先验概率。

再来看,红色石头以前学到了一个判断西瓜是否成熟的常识,就是看瓜蒂是否脱落。一般来说,瓜蒂脱落的情况下,西瓜成熟的概率大一些,大概是 75%。如果把瓜蒂脱落当作一种结果,然后去推测西瓜成熟的概率,这个概率 P(瓜熟 | 瓜蒂脱落) 就被称为后验概率。后验概率类似于条件概率。

知道了先验概率和后验概率,我们再来看看什么是联合概率。红色石头买西瓜的例子中,P(瓜熟,瓜蒂脱落) 称之为联合分布,它表示瓜熟了且瓜蒂脱落的概率。关于联合概率,满足下列乘法等式:

其中,P(瓜熟 | 瓜蒂脱落) 就是刚刚介绍的后验概率,表示在“瓜蒂脱落”的条件下,“瓜熟”的概率。P(瓜蒂脱落 |瓜熟) 表示在“瓜熟”的情况下,“瓜蒂脱落”的概率。

接着,红色石头想如何计算瓜蒂脱落的概率呢?实际上可以分成两种情况:一种是瓜熟状态下瓜蒂脱落的概率,另一种是瓜生状态下瓜蒂脱落的概率。瓜蒂脱落的概率就是这两种情况之和。因此,我们就推导出了全概率公式:

2单个特征判断瓜熟

好了,介绍完先验概率、后验概率、联合概率、全概率后,我们来看这样一个问题:西瓜的状态分成两种:瓜熟与瓜生,概率分别为 0.6 与 0.4,且瓜熟里面瓜蒂脱落的概率是 0.8,瓜生里面瓜蒂脱落的概率是 0.4。那么,如果我现在挑到了一个瓜蒂脱落的瓜,则该瓜是好瓜的概率多大?

显然,这是一个计算后验概率的问题,根据我们上面推导的联合概率和全概率公式,可以求出:

一项一项来看:

条件概率 P(瓜蒂脱落 | 瓜熟) = 0.8

先验概率 P(瓜熟) = 0.6

条件概率 P(瓜蒂脱落 | 瓜生) = 0.4

先验概率 P(瓜生) = 0.4

将以上数值带入上式,得:

这样,我们就计算得到了瓜蒂脱落的瓜是好瓜的概率是 0.75。注意,以上这种计算后验概率的公式就是利用贝叶斯定理。有点意外吧?不知不觉,可以说你已经掌握了贝叶斯定理的思想了。

3多个特征判断瓜熟

为了买到一个熟瓜,红色石头也是拼了。专门在网上搜索了一下。知道判断一个瓜是否熟了,除了要看瓜蒂是否脱落,还要看瓜的形状和颜色。形状有圆和尖之分,颜色有深绿、浅绿、青色之分。要看这么多特征啊?红色石头有点慌,不过没关系,我们可以使用刚刚引入的贝叶斯定理思想来尝试解决这个问题。

现在,特征由原来的 1 个,变成现在的 3 个,我们用 X 表示特征,用 Y 表示瓜的类型(瓜熟还是瓜生)。则根据贝叶斯定理,后验概率 P(Y=ck | X=x) 的表达式为:

其中,ck 表示类别,k 为类别个数。本例中,k = 1,2,c1 表示瓜熟,c2 表示瓜生。上面的公式看似有点复杂,但其实与上一节单特征(瓜蒂是否脱落)的形式是一致的。

有一点需要注意,这里的特征 X 不再是单一的,而是包含了 3 个特征。因此,条件概率 P(X=x | Y=ck) 假设各个条件相互独立,也就是说假设不同特征之间是相互独立的。这样,P(X=x | Y=ck) 就可以写成:

其中,n 为特征个数,j 表示当前所属特征。针对这个例子,P(X=x | Y=ck) 可以写成:

这种条件独立性的假设就是朴素贝叶斯法“朴素”二字的由来。这一假设让朴素贝叶斯法变得简单,但是有时候会牺牲一定的分类准确率。

这样,利用朴素贝叶斯思想,我们就可以把后验概率写成:

不是说好没有那么多公式的吗?别担心,上面的公式看上去比较复杂,其实只是样本特征增加了,形式上与上一节 P(瓜熟 |瓜蒂脱落) 是一致的。

现在,红色石头拿起一个西瓜,观察了它的瓜蒂、形状、颜色三个特征,就能根据上面的朴素贝叶斯公式,分别计算 c1(瓜熟)和 c2(瓜生)的概率,即 P(Y=c1 | X=x) 和 P(Y=c2 | X=x)。然后再比较 P(Y=c1 | X=x) 和 P(Y=c2 | X=x) 值的大小:

若 P(Y=c1 | X=x) > P(Y=c2 | X=x),则判断瓜熟;

若 P(Y=c1 | X=x) < p(y="c2" |="" x="">

值得注意的是上式中的分母部分,对于所有的 ck 来说,都是一样的。因此,分母可以省略,不同的 ck,仅比较 P(Y=ck | X=x) 的分子即可:

好啦!红色石头终于明白了如何利用朴素贝叶斯法,来判断瓜是否熟了。

4朴素贝叶斯分类

红色石头已经了解了贝叶斯定理和朴素贝叶斯法,接下来已经可以很自信地去买瓜了。买瓜之前,还有一件事情要做,就是搜集样本数据。红色石头通过网上资料和查阅,获得了一组包含 10 组样本的数据。这组数据是不同瓜蒂、形状、颜色对应的西瓜是生是熟。我把这组数据当成是历史经验数据,以它为标准。

其中,瓜蒂分为脱落和未脱,形状分为圆形和尖形,颜色分为深绿、浅绿、青色。不同特征组合对应着瓜熟或者瓜生。

现在,红色石头挑了一个西瓜,它的瓜蒂脱落、形状圆形、颜色青色。这时候,红色石头就完全可以根据样本数据和朴素贝叶斯法来计算后验概率。

首先,对于瓜熟的情况:

瓜熟的先验概率: P(瓜熟) = 6 / 10 = 0.6。

条件概率: P(脱落 | 瓜熟) = 4 / 6 = 2 / 3。

条件概率: P(圆形 | 瓜熟) = 4 / 6 = 2 / 3。

条件概率: P(青色 | 瓜熟) = 2 / 6 = 1 / 3。

计算后验概率分子部分:

P(瓜熟) × P(脱落 | 瓜熟) × P(圆形 | 瓜熟) × P(青色 | 瓜熟) = 0.6 × (2 / 3) × (2 / 3) × (1 / 3) = 4 / 45。

然后,对于瓜生的情况:

瓜生的先验概率: P(瓜生) = 4 / 10 = 0.4。

条件概率: P(脱落 | 瓜生) = 1 / 4 = 0.25。

条件概率: P(圆形 | 瓜生) = 1 / 4 = 0.25。

条件概率: P(青色 | 瓜生) = 1 / 4 = 0.25。

计算后验概率分子部分:

P(瓜生) × P(脱落 | 瓜生) × P(圆形 | 瓜生) × P(青色 | 瓜生) = 0.4 × 0.25 × 0.25 × 0.25 = 1 / 160。

因为 4 / 45 > 1 / 160,所以预测为瓜熟。终于计算完了,红色石头很肯定地说这个西瓜瓜蒂脱落、形状圆形、颜色青色,应该是熟瓜。

回到家一看,果然瓜熟了。

5总结

本文以红色石头买西瓜的经历,来给大家形象解释了什么是先验概率、后验概率,介绍了贝叶斯定理和朴素贝叶斯法。最后,将朴素贝叶斯法用于如何挑选西瓜,判断西瓜是否熟了。本文以最白话的语言解释了朴素贝叶斯的基本思想和分类过程。不知道红色石头的这次买瓜经历是否对你了解朴素贝叶斯有所帮助呢?

白话 贝叶斯公式_通俗易懂!白话朴素贝叶斯相关推荐

  1. 白话 贝叶斯公式_【白话机器学习】算法理论+实战之朴素贝叶斯

    来自于: AI蜗牛车团队(作者:Miracle8070) 公众号: AI蜗牛车 原文链接:[白话机器学习]算法理论+实战之朴素贝叶斯​mp.weixin.qq.com 有兴趣的同学可以关注我的公众号: ...

  2. 判别两棵树是否相等 设计算法_机器学习算法-朴素贝叶斯

    一.概述 概率分类器 在许多分类算法应用中,特征和标签之间的关系并非是决定性的.比如说,我们想预测一个人究竟是否会在泰坦尼克号海难中生存下来,那我们可以建一棵决策树来学习我们的训练集.在训练中,其中一 ...

  3. sklearn朴素贝叶斯分类器_机器学习06——朴素贝叶斯

    一.概率公式: 条件概率公式: 事件A发生的条件下,事件B发生的概率=事件A和事件B同时发生的概率/事件A发生的概率 P(AB)=P(A)*P(B|A) 事件A和事件B同时发生的概率=事件A发生的概率 ...

  4. 基于python的贝叶斯分类算法_分类算法-朴素贝叶斯

    朴素贝叶斯分类器(Naive Bayes Classifier, NBC)发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率.同时,NBC 模型所需估计的参数很少,对缺失数据不太敏感,算法也比 ...

  5. 基于朴素贝叶斯分类器的西瓜数据集 2.0 预测分类_机器学习之朴素贝叶斯

    1.贝叶斯原理 朴素贝叶斯分类(Naive Bayesian,NB)源于贝叶斯理论,是一类基于概率的分类器,其基本思想:假设样本属性之间相互独立,对于给定的待分类项,求解在此项出现的情况下其他各个类别 ...

  6. matlab算法用python做_机器学习笔记—朴素贝叶斯算法实现(matlab/python)

    原理知道一百遍不如自己动手写一遍,当然,现在基本上不需要自己来写算法的底层code了,各路大神们已经为我等凡夫俗子写好了,直接调用就行. 这里介绍在MATLAB中和Python中应用贝叶斯算法的小例子 ...

  7. bayes什么意思_什么是朴素贝叶斯法?

    1) 朴素贝叶斯法(naive Bayes)基于什么理论? 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法. 2) 朴素贝叶斯法的过程是怎样的? 对于给定的训练数据集,首先基于特征条件独立假 ...

  8. 【转】通俗易懂!白话朴素贝叶斯

    转自博客:https://blog.csdn.net/red_stone1/article/details/80935942 说起朴素贝叶斯,很多人会被它复杂的公式和易混淆的概念搞得晕头转向.不知所以 ...

  9. 通俗易懂!白话朴素贝叶斯

    个人网站:红色石头的机器学习之路 CSDN博客:红色石头的专栏 知乎:红色石头 微博:RedstoneWill的微博 GitHub:RedstoneWill的GitHub 微信公众号:AI有道(ID: ...

最新文章

  1. css 图片居中放大,不同比例图片居中缩放显示的三种方法
  2. 【网络安全】Metasploit 生成的 Shellcode 的导入函数解析以及执行流程分析(1)
  3. matlab中find函数_在R中使用Matlab函数
  4. Dubbo(五)Dubbo 简单监控平台(monitor)搭建
  5. 关于查看文件size
  6. 手把手教你强化学习 (九) 强化学习中策略梯度算法
  7. JVM java虚拟机
  8. Windows 终端常用命令,必备!
  9. java数字转中文_java阿拉伯数字转中文数字
  10. SphereEx张亮:“开源和商业化不能形成对立”
  11. Python faker模块
  12. 真无线蓝牙耳机排名前十的品牌,公认佩戴舒适性好的蓝牙耳机分享
  13. Java Web项目源代码|CRM客户关系管理系统项目实战(Struts2+Spring+Hibernate)解析+源代码+教程
  14. 远程shell特洛伊木马病毒
  15. 支持向量机(SVM)学习小记
  16. macOS中修改应用或文件图标
  17. freeMark的入门教程
  18. 联想拯救者r720折腾MacOS12.3.1记录
  19. macos从10.12.6升级到10.15.7 svn无法使用
  20. Linux命令·ss

热门文章

  1. 机器学习PAI实现精细化营销
  2. eclipse 设置炫酷黑主题
  3. 各种数据库的应用场景
  4. “com.paragon-software.installer”是从互联网下载的App。您确定要打开它吗?
  5. 一文带你读懂iOS应用如何使用TestFlight进行测试
  6. Python插值法(3)————hermite插值多项式(拉格朗日型)
  7. 结合opencv学习DIP
  8. debian/ubuntu 设置环境变量 (1)
  9. 明解C语言入门篇第三版 pdf 初读体会
  10. BI商业智能项目中存在的风险与企业如何推行适合自己的BI项目