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

article/2025/9/24 12:41:06

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

朴素贝叶斯(Naive Bayesian algorithm)是有监督学习的一种分类算法,它基于“贝叶斯定理”实现,该原理的提出人是英国著名数学家托马斯·贝叶斯。贝叶斯定理是基于概率论和统计学的相关知识实现的,因此在正式学习“朴素贝叶斯算法”前,我们有必要先认识“贝叶斯定理”。

贝叶斯定理

贝叶斯定理的发明者 托马斯·贝叶斯 提出了一个很有意思的假设:“如果一个袋子中共有 10 个球,分别是黑球和白球,但是我们不知道它们之间的比例是怎么样的,现在,仅通过摸出的球的颜色,是否能判断出袋子里面黑白球的比例?”

上述问题可能与我们高中时期所接受的的概率有所冲突,因为你所接触的概率问题可能是这样的:“一个袋子里面有 10 个球,其中 4 个黑球,6 个白球,如果你随机抓取一个球,那么是黑球的概率是多少?”毫无疑问,答案是 0.4。这个问题非常简单,因为我们事先知道了袋子里面黑球和白球的比例,所以很容易算出摸一个球的概率,但是在某些复杂情况下,我们无法得知“比例”,此时就引出了贝叶斯提出的问题。

在统计学中有两个较大的分支:一个是“频率”,另一个便是“贝叶斯”,它们都有各自庞大的知识体系,而“贝叶斯”主要利用了“相关性”一词。下面以通俗易懂的方式描述一下“贝叶斯定理”:通常,事件 A 在事件 B 发生的条件下与事件 B 在事件 A 发生的条件下,它们两者的概率并不相同,但是它们两者之间存在一定的相关性,并具有以下公式(称之为“贝叶斯公式”):

贝叶斯公式

看到上述公式,你可能一头雾水,不过不必慌张,下面我们来了解一下“贝叶斯”公式。
符号意义
首先我们要了解上述公式中符号的意义:

P(A) 这是概率中最基本的符号,表示 A 出现的概率。比如在投掷骰子时,P(2) 指的是骰子出现数字“2”的概率,这个概率是 六分之一。

P(B|A) 是条件概率的符号,表示事件 A 发生的条件下,事件 B 发生的概率,条件概率是“贝叶斯公式”的关键所在,它也被称为“似然度”。

P(A|B) 是条件概率的符号,表示事件 B 发生的条件下,事件 A 发生的概率,这个计算结果也被称为“后验概率”。

有上述描述可知,贝叶斯公式可以预测事件发生的概率,两个本来相互独立的事件,发生了某种“相关性”,此时就可以通过“贝叶斯公式”实现预测。

条件概率

条件概率是“贝叶斯公式”的关键所在,那么如何理解条件概率呢?其实我们可以从“相关性”这一词语出发。举一个简单的例子,比如小明和小红是同班同学,他们各自准时回家的概率是 P(小明回家) = 1/2 和 P(小红回家) =1/2,但是假如小明和小红是好朋友,每天都会一起回家,那么 P(小红回家|小明回家) = 1 (理想状态下)。

上述示例就是条件概率的应用,小红和小明之间产生了某种关联性,本来俩个相互独立的事件,变得不再独立。但是还有一种情况,比如小亮每天准时到家 P(小亮回家) =1/2,但是小亮喜欢独来独往,如果问 P(小亮回家|小红回家) 的概率是多少呢?你会发现这两者之间不存在“相关性”,小红是否到家,不会影响小亮的概率结果,因此小亮准时到家的概率仍然是 1/2。

贝叶斯公式的核心是“条件概率”,譬如 P(B|A),就表示当 A 发生时,B 发生的概率,如果P(B|A)的值越大,说明一旦发生了 A,B 就越可能发生。两者可能存在较高的相关性。

先验概率

在贝叶斯看来,世界并非静止不动的,而是动态和相对的,他希望利用已知经验来进行判断,那么如何用经验进行判断呢?这里就必须要提到“先验”和“后验”这两个词语。我们先讲解“先验”,其实“先验”就相当于“未卜先知”,在事情即将发生之前,做一个概率预判。比如从远处驶来了一辆车,是轿车的概率是 45%,是货车的概率是 35%,是大客车的概率是 20%,在你没有看清之前基本靠猜,此时,我们把这个概率就叫做“先验概率”。

后验概率

在理解了“先验概率”的基础上,我们来研究一下什么是“后验概率?”

我们知道每一个事物都有自己的特征,比如前面所说的轿车、货车、客车,它们都有着各自不同的特征,距离过远的时候,我们无法用肉眼分辨,而当距离达到一定范围内就可以根据各自的特征再次做出概率预判,这就是后验概率。比如轿车的速度相比于另外两者更快可以记做 P(轿车|速度快) = 55%,而客车体型可能更大,可以记做 P(客车|体型大) = 35%。

如果用条件概率来表述 P(体型大|客车)=35%,这种通过“车辆类别”推算出“类别特征”发生的的概率的方法叫作“似然度”。这里的似然就是“可能性”的意思。

朴素+贝叶斯

了解完上述概念,你可能对贝叶斯定理有了一个基本的认识,实际上贝叶斯定理就是求解后验概率的过程,而核心方法是通过似然度预测后验概率,通过不断提高似然度,自然也就达到了提高后验概率的目的。

我们知道“朴素贝叶斯算法”由两个词语组成。朴素(native)是用来修饰“贝叶斯”这个名词的。按照中文的理解“朴素”意味着简单不奢华。朴素的英文是“native”,意味着“单纯天真”。

朴素贝叶斯是一种简单的贝叶斯算法,因为贝叶斯定理涉及到了概率学、统计学,其应用相对复杂,因此我们只能以简单的方式使用它,比如天真的认为,所有事物之间的特征都是相互独立的,彼此互不影响。关于朴素贝爷斯算法在下一节会详细介绍。


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

相关文章

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文件,webpack报错如下: webpack本身是支持json文件读取的,这个报错是babel-loader在报错,也就是说,打包的时候,babel-loader去解析了json文件。babel是js的编译工具,可以把js、…

React 使用webpack打包

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

webpack打包工具的基本使用

目录 一、webpack是什么? 二、webpack的基本使用 1、初始化项目 2、安装webpack及其依赖 3、使用 3.1 配置webpack: 3.2 在package.js文件中添加打包命令 3.3 执行打包命令 三、webpack相关插件 插件一: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包, 3.卸载包的时候,用npm uninstall jquery -S(如果需要卸载的话) 4.在根目录上新建src文…

webpack 打包chunk

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

webpack打包报错

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

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

webpack打包分析

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

如何使用Webpack打包

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

webpack打包优化配置

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

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打包原理

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

webpack 打包流程

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

Webpack打包

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

使用webpack打包vue项目

使用webpack打包vue项目 安装webpack工具,安装方式有两种:全局安装(命令:npm install -g webpack webpack-cli)以及安装在项目中,这里使用第二种: //在项目中安装,这里的-D表示运用到…