小白之通俗易懂的贝叶斯定理

article/2025/9/24 12:37:26

小白之通俗易懂的贝叶斯定理

  • 贝叶斯定理的产生以及意义
  • 什么是贝叶斯定理?
  • 贝叶斯定理的应用案例
  • 贝叶斯定理套路
  • 生活中的贝叶斯思维

转载自:https://mp.weixin.qq.com/s/lR3eeSWYHJDAJ9kJUzXc7w

贝叶斯定理的产生以及意义

1、贝叶斯定理的产生来源

  • 英国数学家托马斯·贝叶斯(Thomas Bayes)在1763年发表的一篇论文中,首先提出了这个定理。而这篇论文是在他死后才由他的一位朋友发表出来的。在这篇论文中,他为了解决一个“逆向概率”问题,而提出了贝叶斯定理。
  • 在贝叶斯写这篇文章之前,人们已经能够计算正向概率,比如杜蕾斯举办了一个抽奖,抽奖桶里有10个球,其中2个白球,8个黑球,抽到白球就算你中奖。你伸手进去随便摸出1颗球,摸出中奖球的概率是多大。根据频率概率的计算公式,你可以轻松的知道中奖的概率是2/10。
  • 而贝叶斯在他的文章中是为了解决一个“逆概率”的问题。同样以抽奖为例,我们并不知道抽奖桶里有什么,而是摸出一个球,通过观察这个球的颜色,来预测这个桶里里白色球和黑色球的比例。
  • 这个预测其实就可以用贝叶斯定理来做。贝叶斯当时的论文只是对“逆概率”这个问题的一个直接的求解尝试,这哥们当时并不清楚这里面这里面包含着的深刻思想。然而后来,贝叶斯定理席卷了概率论,并将应用延伸到各个问题领域。可以说,所有需要作出概率预测的地方都可以见到贝叶斯定理的影子,特别地,贝叶斯是机器学习的核心方法之一。

2、为什么贝叶斯定理在现实生活中这么有用呢?

  • 这是因为现实生活中的问题,大部分都是像上面的逆概率问题。生活中绝大多数决策面临的信息都是不完全的,我们手中只有有限的信息。既然无法得到全面的信息,我们就应该在信息有限的情况下,尽可能做出一个最优的预测。
  • 比如,天气预报说,明天降雨的概率是30%。这是什么意思呢?因为我们无法像计算频率概率那样,重复地把明天过上100次,然后计算出大约有30次会下雨,所以只能利用有限的信息(过去天气的测量数据),采用贝叶斯定理来预测出明天下雨的概率是多少。
  • 同样的,在现实世界中,我们每个人都需要预测。要想深入分析未来、思考是否买股票、政策给自己带来哪些机遇、提出新产品构想,或者只是计划一周的饭菜。贝叶斯定理就是为了解决这些问题而诞生的,它可以根据过去的数据来预测出概率。贝叶斯定理的思考方式为我们提供了明显有效的方法来帮助我们提供能力,以便更好地预测未来的商业、金融、以及日常生活。

3、贝叶斯定理有什么用?在有限的信息下,能够帮助我们预测出概率。

什么是贝叶斯定理?

贝叶斯定理公式如下:
在这里插入图片描述

贝叶斯定理其实就是下面图片中的概率公式,这里先不讲这个公式,而是重点关注它的使用价值,因为只有理解了它的使用意义,你才会更有兴趣去学习它。其实,我和你一样,不喜欢公式。我们还是从一个例子开始聊起。

我的朋友小鹿说,他女神每次看到他的时候都会冲他笑,他想知道女神是不是喜欢他呢?谁让我学过统计概率知识呢,下面我们一起用贝叶斯帮小鹿预测以下女神喜欢他的概率有多大,这样小鹿就可以根据概率的大小来决定是否要表白女神。

首先,我们分析给定的已知信息和未知信息:
1)要求解的问题:女神喜欢你,记为A事件
2)已知条件:女神经常冲你笑,记为B事件
根据条件概率,P(A|B)是女神经常冲你笑这个B事件发生后女神喜欢你的概率(A事件)。

现在,我们来详细解释公式:
1)先验概率
我们把P(A)称为"先验概率"(Prior probability),即在不知道B事件发生的前提下,我们对A事件发生概率的一个主观判断。这个例子里就是在不知道女神经常对你笑的前提下,来主观判断出女神喜欢一个人的概率。这里我们假设是50%,也就是有可能喜欢你,也有可能不喜欢还你的概率各是一半。

2)可能性函数
P(B|A)/P(B)称为**“可能性函数”(Likelyhood),这是一个调整因子,即新信息事件B的发生调整,作用是,使得先验概率更接近真实概率。**
可能性函数你可以理解为新信息过来后,对先验概率的一个调整。比如上面的例子 在女神没有对笑之前,你觉得女神喜欢你的概率50%(先验概率/主管判断),女生经常对你笑(调整因子/新的信息),使得你觉得女神喜欢你的概率上升而超过50%(后验概率);又比如我们刚开始看到“人工智能”这个信息,你有自己的理解(先验概率/主观判断),但是当你学习了一些数据分析,或者看了些这方面的书后(新的信息),然后你根据掌握的最新信息优化了自己之前的理解(可能性函数/调整因子),最后重新理解了“人工智能”这个信息(后验概率)

如果"可能性函数"P(B|A)/P(B)>1,意味着"先验概率"被增强,事件A的发生的可能性变大;
如果"可能性函数"=1,意味着B事件无助于判断事件A的可能性;
如果"可能性函数"<1,意味着"先验概率"被削弱,事件A的可能性变小。

还是刚才的例子,根据女神经常冲你笑这个新的信息,我调查走访了女神的闺蜜,最后发现女神平日比较高冷,很少对人笑。所以我估计出"可能性函数"P(B|A)/P(B)=1.5(具体如何估计,省去1万字,后面会有更详细科学的例子)

3)后验概率
P(A|B)称为"后验概率"(Posterior probability),即在B事件发生之后,我们对A事件概率的重新评估。这个例子里就是在女神冲你笑后,对女神喜欢你的概率重新预测。
带入贝叶斯公式计算出P(A|B)=P(A)* P(B|A)/P(B)=50% *1.5=75%
因此,女神经常冲你笑,喜欢上你的概率是75%。这说明,女神经常冲你笑这个新信息的推断能力很强,将50%的"先验概率"一下子提高到了75%的"后验概率"。

现在我们再来看一遍贝叶斯公式,你现在就能明白这个公式背后的最关键思想了
我们先根据以往的经验预估一个"先验概率"P(A),然后加入新的信息(实验结果B),这样有了新的信息后,我们对事件A的预测就更加准确。
因此,贝叶斯定理可以理解成下面的式子:
后验概率(新信息出现后A发生的概率)=先验概率(A发生的概率)x可能性函数(新信息带出现来的调整)

贝叶斯的底层思想就是:
如果我能掌握一个事情的全部信息,我当然能计算出一个客观概率(古典概率、正向概率)。可是生活中绝大多数决策面临的信息都是不全的,我们手中只有有限的信息。既然无法得到全面的信息,我们就在信息有限的情况下,尽可能做出一个好的预测。也就是,在主观判断的基础上,可以先估计一个值(先验概率),然后根据观察的新信息不断修正(可能性函数)。

贝叶斯定理的应用案例

案例1:贝叶斯定理在做判断上的应用
有两个一模一样的碗,1号碗里有30个巧克力和10个水果糖,2号碗里有20个巧克力和20个水果糖。然后把碗盖住。随机选择一个碗,从里面摸出一个巧克力。

问题:这颗巧克力来自1号碗的概率是多少?
好了,下面我就用套路来解决这个问题,到最后我会给出这个套路。
第1步,分解问题
1)要求解的问题:取出的巧克力,来自1号碗的概率是多少?
来自1号碗记为事件A1,来自2号碗记为事件A2
取出的是巧克力,记为事件B,
那么要求的问题就是P(A1|B),即取出的是巧克力,来自1号碗的概率
2)已知信息:
1号碗里有30个巧克力和10个水果糖
2号碗里有20个巧克力和20个水果糖
取出的是巧克力

第2步,应用贝叶斯定理
1)求先验概率
由于两个碗是一样的,所以在得到新信息(取出是巧克力之前),这两个碗被选中的概率相同,因此P(A1)=P(A2)=0.5,(其中A1表示来自1号碗,A2表示来自2号碗)
这个概率就是"先验概率",即没有做实验之前,来自一号碗、二号碗的概率都是0.5。
2)求可能性函数
P(B|A1)/P(B)
其中,P(B|A1)表示从一号碗中(A1)取出巧克力(B)的概率。因为1号碗里有10个水果糖和30个巧克力,所以P(B|A1)=30/(30+10)=75% 根据全概率公式,可以求得P(B)=P(B|A1)P(A1)+P(B|A2)P(A2)=62.5%
可能性函数P(B|A1)/P(B)=75%/62.5%=1.2 可能性函数>1.表示新信息B对事情A1的可能性增强了。
3)代入贝叶斯公式求后验概率
将上述计算结果,带入贝叶斯定理,即可算出P(A1|B)=60%
这个例子中我们需要关注的是约束条件:抓出的是巧克力。如果没有这个约束条件在,来自一号碗这件事的概率就是50%了,因为巧克力的分布不均把概率从50%提升到60%。

贝叶斯垃圾邮件过滤器
垃圾邮件是一种令人头痛的问题,困扰着所有的互联网用户。全球垃圾邮件的高峰出现在2006年,那时候所有邮件中90%都是垃圾,2015年6月份全球垃圾邮件的比例数字首次降低到50%以下。
最初的垃圾邮件过滤是靠静态关键词加一些判断条件来过滤,效果不好,漏网之鱼多,冤枉的也不少。
2002年,Paul Graham提出使用"贝叶斯推断"过滤垃圾邮件。他说,这样做的效果,好得不可思议。1000封垃圾邮件可以过滤掉995封,且没有一个误判。因为典型的垃圾邮件词汇在垃圾邮件中会以更高的频率出现,所以在做贝叶斯公式计算时,肯定会被识别出来。之后用最高频的15个垃圾词汇做联合概率计算,联合概率的结果超过90%将说明它是垃圾邮件。用贝叶斯过滤器可以识别很多改写过的垃圾邮件,而且错判率非常低。甚至不要求对初始值有多么精确,精度会在随后计算中逐渐逼近真实情况。

贝叶斯定理套路

贝叶斯定理应用的套路,你就更清楚了,会发现像小学生做应用题一样简单:
第1步. 分解问题
简单来说就像做应用题的感觉,先列出解决这个问题所需要的一些条件,然后记清楚哪些是已知的,哪些是未知的。
1)要求解的问题是什么?
识别出哪个是贝叶斯中的事件A(一般是想要知道的问题),哪个是事件B(一般是新的信息,或者实验结果)
2)已知条件是什么?
第2步.应用贝叶斯定理
第3步.求贝叶斯公式中的2个指标
1)求先验概率
2)求可能性函数
3)带入贝叶斯公式求后验概率

生活中的贝叶斯思维

贝叶斯定理与人脑的工作机制很像,这也是为什么它能成为机器学习的基础。
如果你仔细观察小孩学习新东西的这个能力,会发现,很多东西根本就是看一遍就会。比如我3岁的外甥,看了我做俯卧撑的动作,也做了一次这个动作,虽然动作不标准,但是也是有模有样。

同样的,我告诉他一个新单词,他一开始并不知道这个词是什么意思,但是他可以根据当时的情景,先来个猜测(先验概率/主观判断)。一有机会,他就会在不同的场合说出这个词,然后观察你的反应。如果我告诉他用对了,他就会进一步记住这个词的意思,如果我告诉他用错了,他就会进行相应调整。(可能性函数/调整因子)。经过这样反复的猜测、试探、调整主观判断,就是贝叶斯定理思维的过程

同样的,我们成人也在用贝叶斯思维来做出决策。比如,你和女神在聊天的时候,如果对方说出“虽然”两个字,你大概就会猜测,对方后继九成的可能性会说出“但是”。我们的大脑看起来就好像是天生在用贝叶斯定理,即根据生活的经历有了主观判断(先验概率),然后根据搜集新的信息来修正(可能性函数/调整因子),最后做出高概率的预测(后验概率)


http://chatgpt.dhexx.cn/article/GpNN9TDi.shtml

相关文章

通俗地理解贝叶斯公式(定理)

通俗地理解贝叶斯公式&#xff08;定理&#xff09; 朴素贝叶斯&#xff08;Naive Bayesian algorithm&#xff09;是有监督学习的一种分类算法&#xff0c;它基于“贝叶斯定理”实现&#xff0c;该原理的提出人是英国著名数学家托马斯贝叶斯。贝叶斯定理是基于概率论和统计学…

WebPack实战 WebPack打包Vue项目

文章目录 前言一、使用webpack来进行vue-cli模块化开发二、Webpack配置区分开发环境和生产环境三、vue项目打包3.1、config—index.js文件3.2、build—webpack.prod.conf.js 文件3.3、element ui 字体文件加载出错3.4、路由跳转出现js访问404问题 四、关闭Webpack的debug模式五…

vscode使用webpack打包

vscode使用webpack打包 下载webpack初始化项目打包 .js文件打包.js.csswebpack全局安装与局部安装 webpack作用就是将多个不同的.js文件或者.css文件打包为一个文件,减少请求量 有大佬的帖子写的很详细,各种资源的打包方式都有: https://blog.csdn.net/chen4565/article/detai…

webpack打包html

webpack打包html 1.生产环境与开发环境的区别2.打包html3.安装html插件4.在配置文件中引入我们的插件5.在我们的配置文件的最下方写入html配置6.打包完成生成一个index文件7.在文件中写入其他内容8.打包后的内容展示9.改变title的内容10.打包后的效果展示11.打包多个页面12.压缩…

webpack打包json文件

项目里新增了json文件&#xff0c;webpack报错如下&#xff1a; webpack本身是支持json文件读取的&#xff0c;这个报错是babel-loader在报错&#xff0c;也就是说&#xff0c;打包的时候&#xff0c;babel-loader去解析了json文件。babel是js的编译工具&#xff0c;可以把js、…

React 使用webpack打包

一、项目创建 1、新建一个项目文件夹&#xff0c;打开终端&#xff0c;切换到到项目目录下&#xff1a; npm init -y 这时候使用webstorm等高级的编辑器打开项目执行下面步骤效果会更直观。 2、新建一个文件夹public&#xff0c;在文件夹内创建index.html文件&#xff0c;添加…

webpack打包工具的基本使用

目录 一、webpack是什么&#xff1f; 二、webpack的基本使用 1、初始化项目 2、安装webpack及其依赖 3、使用 3.1 配置webpack&#xff1a; 3.2 在package.js文件中添加打包命令 3.3 执行打包命令 三、webpack相关插件 插件一&#xff1a;HtmlWebpackPlugin 插件二&a…

webpack打包优化

目录 概述 打包优化-路由懒加载 问题 那什么是路由懒加载呢? 路由懒加载中的魔法注释 小结 打包优化-包大小分析 包大小分析 打包优化-去掉console-log webpack配置排除打包-整体分析 回顾 提问 思路 webpack配置排除打包-打包瘦身 目标 使用方式 webpack配置…

webpack打包工具的使用方法

目录 一、webpack打包工具 1、简介 2.npm补充 3.webpack一系列的步骤 1.npm init -y初始化文件生成package.json文件 2.npm install jquery -S安装jquery包&#xff0c; 3.卸载包的时候&#xff0c;用npm uninstall jquery -S(如果需要卸载的话) 4.在根目录上新建src文…

webpack 打包chunk

chunk的含义以及出现的情况 webpack特定术语在内部用于管理捆绑过程&#xff0c;输出束&#xff08;bundle&#xff09;由块组成。 是webpack 根据功能拆分出来的代码片段&#xff0c;包含三种情况 官方: 1.入口起点&#xff1a;使用entry配置手动地分离代码 **2.防止重复…

webpack打包报错

在执行npm run build对项目进行打包的时候遇到webpack打包报错的问题 在网上找到各种方法去解决&#xff0c;什么node版本不兼容啊重装node啊&#xff0c;什么saas没装好python环境啊&#xff0c;webpack版本兼容问题啊&#xff01;总之各种说法都看着去尝试解决了&#xff0c;…

webpack打包css

webpack打包 1.打包css2.打包逻辑1-1.webpack打包css逻辑 3.打包css4.打包成独立的css文件5.添加样式前缀6.格式校验7.压缩css8.我们为什么要用这个打包工具呢9.webpack的打包顺序10.总结 1.打包css 2.打包逻辑 1-1.webpack打包css逻辑 非js文件打包 需要对应的loadercss-loa…

初识webpack打包

初识webpack打包&#xff0c;小白入门 前言&#xff1a; webpack是一款基于node的构建工具&#xff0c;其中一大特色就是打包 因为现在前端已经工程化开发&#xff0c;写的代码已经不能直接在浏览器上运行了 这时候webpack会帮你把代码进行编译&#xff0c;打包成浏览器识别的…

webpack打包分析

分析一&#xff1a;打包的时间分析 如果我们希望看到每一个loader、每一个Plugin消耗的打包时间&#xff0c;可以借助于一个插件&#xff1a;speed-measure-webpack-plugin注意&#xff1a;该插件在最新的webpack版本中存在一些兼容性的问题&#xff08;和部分Plugin不兼容&am…

如何使用Webpack打包

简单的说了一下webpack是干嘛的&#xff0c;和webpack如何安装&#xff0c;如何进行打包&#xff0c;步骤很详细&#xff0c;感兴趣的同学可以试着操作一下。 文章目录 1、webpacks是什么&#xff1f;2、Webpack安装3、初始化项目4、使用webpack进行JS打包5、使用webpack进行CS…

webpack打包优化配置

文章目录 前言不进行任何打包配置代码分离splitChunkruntimeChunk动态导入 css文件处理css文件提取css文件压缩css实现Tree Shaking js实现Tree shakingTerserscope Hoisting打包优化没效果打包界面显示分析总结 前言 之前使用webpack进行项目搭建配置时&#xff0c;都是操作一…

webpack打包路径更改_webpack打包教程

创建package.json文件 命令:npm init 安装webpack npm install --save-dev webpack npm install --save-dev webpack-cli 全局安装: npm install --global webpack webpack-cli 打包 默认entry入口 src/index.js 默认output出口 dist/main.js 打包模式: webpack --mode deve…

Vue基础知识总结 9:vue webpack打包原理

&#x1f3c6;作者简介&#xff1a;哪吒&#xff0c;CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师✌、博客专家&#x1f4aa;&#xff0c;专注Java硬核干货分享&#xff0c;立志做到Java赛道全网Top N。 &#x1f3c6;本文收录于&#xff0c;Java基础教程系列…

webpack 打包流程

流程梳理 在开始之前我们先对于整个打包流程进行一次梳理。 这里仅仅是一个全流程的梳理&#xff0c;现在你没有必要非常详细的去思考每一个步骤发生了什么&#xff0c;我们会在接下来的步骤中去一步一步带你串联它们。 整体我们将会从上边5个方面来分析Webpack打包流程: 初…

Webpack打包

webpack【依赖node环境】 什么是webpack&#xff1f; 从本质上将&#xff0c;webpack是一个现代的JavaScript应用的静态模板打包工具。 前端模块化&#xff1a; 前端模块化是指&#xff0c;通过将前端代码根据一定的规则解耦封装成几个代码文件&#xff08;模块&#xff09;&…