一文讲明白朴素贝叶斯算法及其计算公式(入门普及)
1、贝叶斯算法
贝叶斯定理由英国数学家托马斯·贝叶斯 ( Thomas Bayes) 提出的,用来描述两个条件概率之间的关系。通常,事件A在事件B 发生的条件下与事件 B 在事件 A 发生的条件下,它们两者的概率并不相同,但是它们两者之间存在一定的相关性,并具有以下公式,称之为贝叶斯公式:
对于一般的机器学习算法学习者而言,大家看到这种公式基本上都是在努力回忆那些学过的数学知识,总有一种似曾相识的感觉,但却不能准确理解,为此首先进行复习和回归数学中的那些个事情。
☀什么是条件概率?
条件概率就像是在一个已经有了某种“前提情况”下,去看另一件事情发生的可能性。比如说,你想知道在“今天是下雨天”这个前提条件下,“路上堵车”的概率。“今天是下雨天”就是那个已经发生的事件B,“路上堵车” 就是事件A,我们想求的就是P(A|B)。
☀如何理解2个事件存在一定的相关性?
当我们考虑两个条件概率和
时,它们之间的相关性源于事件A和B本身的内在联系。例如,假设事件A是“一个人患有流感”,事件B是“一个人发烧”。
表示在一个人发烧的情况下,他患有流感的概率。而
表示在一个人患有流感的情况下,他发烧的概率。很明显,这两个概率是相关的,因为流感和发烧这两个事件是紧密联系在一起的。如果一个人更容易在患流感的时候发烧,那么
的值就会比较高;反过来,发烧是患流感的一个常见症状,那么在看到一个人发烧时,他患流感的概率
也会受到
的影响。
条件概率是“贝叶斯公式”的关键所在,它也被称为“似然概率”, 一般是通过历史数据统计得到.贝叶斯公式可以预测事件发生的概率,两个本来相互独立的事件A和B,发生了某种“相关性”,此时就可以通过“贝叶斯公式”实现预测。
2、朴素贝叶斯算法实现
贝叶斯分类法是个厉害的统计学分类“神器”,它的基础就是贝叶斯定理,在机器学习领域比较受欢迎。简单来说,它主要用于预测一个“物品”属于某一类的可能性有多大,然后根据这个概率来给“物品”分类。
为啥说它是“朴素贝叶斯”呢?因为假定世间万物的各种特征都是自己管自己,互相之间不干扰,就好像每个特征都活在自己的“小世界”里,谁也影响不了谁。比如说判断一个水果是不是苹果,它的颜色、形状、大小这些特征,在朴素贝叶斯看来,彼此没有牵连。
这种“各扫门前雪”的假定,在专业上就叫类条件独立。也就是说,当我们判断某个属性值对确定一个物品属于哪一类有什么影响的时候,朴素贝叶斯觉得这个影响和其他属性值一点关系都没有,就只看这一个属性自己的“表现”,然后依据这个,再结合贝叶斯定理算出概率,完成分类任务。
朴素贝叶斯分类,或简单贝叶斯分类的工作过程如下:
(1)假设有样本数据集D={X1, X2,…,Xn}, 属性变量集为A={A1, A2, A3,…,Ad},每个数据样本用一个d维的特征向量X={x1, x2, x3,…,xd}表示,类变量为Y有m个类别,记为Y={y1, y2,y 3,…,ym}。
(2)Y的先验概率表示为Pprior=P(Y)。 预测样本X的类别,就是求在已知X的条件下,类别是Y的概率,即后验概率,表示为Ppost=P(Y|X)。
☀先验概率,也就是 P_prior指什么?
想象一下我们有一堆水果,里面分成了苹果、香蕉、橙子这些类别。那先验概率P(Y),就是在我们还没去仔细看每个水果具体长什么样(也就是没考虑具体的特征情况)的时候,单纯从整体上看,某个类别出现的概率。就好比在一堆水果里,我们只知道有多少个是苹果,有多少个是香蕉,有多少个是橙子,然后算出苹果占总水果个数的比例,这个比例就是苹果这个类别的先验概率,其他类别同理。
☀后验概率,也就是 P_post 等于 P(Y|X)指什么?
现在假如我们拿到了一个水果,这个水果有它自己的一些特点,比如它是红色的、圆圆的、个头挺大,这些特点就是样本X代表的特征。这时候我们想知道这个有这些特点的水果它属于哪个类别,比如它是苹果、还是香蕉或者橙子,那就要去求在已经知道它有这些特点(也就是已知X的条件下),它属于某个类别Y的概率,这个概率就是后验概率P(Y|X)。简单说,就是依据这个水果呈现出来的样子,去倒推它最有可能属于哪个类别所对应的概率大小。
(3)根据贝叶斯定理
由于朴素贝叶斯假定各个特征变量之间是相互独立,在给定类别为y的情况下,上式可以进一步表示为下式:
①公式符号定义:X是一个维的特征向量,表示为X={x1, x2, x3,…,xd},它代表了一个样本的所有特征。Y是类别变量,y是的一个具体取值,代表某一个类别。∏是连乘符号,就像是求和符号∑一样,这里表示从i=1到i=d的所有项相乘。
②条件概率的理解:是在类别Y为y的条件下,样本具有特征向量X的概率。例如,在判断一封邮件是否是垃圾邮件(Y是邮件类别,y表示垃圾邮件这个类别),X可能是邮件中包含的一些特征,如是否包含特定关键词、发件人地址是否陌生等,
就是在邮件是垃圾邮件的情况下,出现这些特征组合的概率。
由以上两式可以计算出后验概率为:
①是先验概率,即在没有考虑样本X的情况下,事件Y发生的概率。
②这部分体现了在给定类别Y下,各个特征xi的条件概率的乘积,这通常与朴素贝叶斯分类器相关,假设各个特征之间相互独立。
③是样本X出现的概率。
这个公式用于根据先验概率、特征的条件概率和样本概率来计算后验概率,在分类问题(如文本分类、图像分类等)中有着广泛的应用。例如在垃圾邮件分类中,可以是邮件是否为垃圾邮件的类别,是邮件中的词汇特征等。通过计算后验概率来判断邮件属于垃圾邮件还是正常邮件的可能性。
由此,可以得到一个样本数据属于类别yi的计算公式如下:
这个公式可由上一个公式得出。
至此,朴素贝叶斯分类的基本公式已讲解完毕,下次将针对贝叶斯分类的应用具体来展开。
相关文章:

一文讲明白朴素贝叶斯算法及其计算公式(入门普及)
1、贝叶斯算法 贝叶斯定理由英国数学家托马斯贝叶斯 ( Thomas Bayes) 提出的,用来描述两个条件概率之间的关系。通常,事件A在事件B 发生的条件下与事件 B 在事件 A 发生的条件下,它们两者的概率并不相同,但是它们两者之间存在一定…...

实际开发中,常见pdf|word|excel等文件的预览和下载
实际开发中,常见pdf|word|excel等文件的预览和下载 背景相关类型数据之间的转换1、File转Blob2、File转ArrayBuffer3、Blob转ArrayBuffer4、Blob转File5、ArrayBuffer转Blob6、ArrayBuffer转File 根据Blob/File类型生成可预览的Base64地址基于Blob类型的各种文件的下载各种类型…...
Python自学 - 递归函数
1 Python自学 - 递归函数 递归函数是一种在函数体内调用自己的函数,就像“左脚踩着右脚,再右脚踩着左脚… 嗯,你就可以上天了!”。递归函数虽然不能上天,但在处理某些场景时非常好用, 一种典型的场景就是遍…...

Spark-Streaming有状态计算
一、上下文 《Spark-Streaming初识》中的NetworkWordCount示例只能统计每个微批下的单词的数量,那么如何才能统计从开始加载数据到当下的所有数量呢?下面我们就来通过官方例子学习下Spark-Streaming有状态计算。 二、官方例子 所属包:org.…...

Markdown如何导出Html文件Markdown文件
Markdown如何导出Html文件Markdown文件 前言语法详解小结其他文章快来试试吧☺️ Markdown 导出 HTML 👈点击这里也可查看 前言 Markdown的源文件以md为后缀。Markdown是HTML语法的简化版本,它本身不带有任何样式信息。我们所看到的Markdown网页(如&…...

使用Python进行图像裁剪和直方图分析
一、简介 在数字图像处理领域,裁剪和分析图像的直方图是两个非常基本且重要的操作。本文将通过一个简单的Python项目,展示如何使用skimage和matplotlib库来裁剪图像并分析其RGB通道的直方图。 二、环境准备 在开始之前,请确保你已经安装了以…...

企业内管信息化系统
本文结尾处获取源码。 本文结尾处获取源码。 本文结尾处获取源码。 一、相关技术 后端:Java、JavaWeb / Springboot。前端:Vue、HTML / CSS / Javascript 等。数据库:MySQL 二、相关软件(列出的软件其一均可运行) I…...

【python因果库实战15】因果生存分析4
这里写目录标题 加权标准化生存分析总结个体层面的生存曲线 加权标准化生存分析 我们还可以将加权与标准化结合起来,使用 WeightedStandardizedSurvival 模块。在这里,我们将逆倾向得分加权模型(根据基线协变量重新加权人群)与加…...

Linux 线程详解
目录 一、线程概述 二、线程创建 三、线程终止 四、线程回收 五、线程取消 六、线程分离 七、线程安全 一、线程概述 线程是进程内的一个执行单元,是进程内可调度的实体。一个进程可以包含多个线程,这些线程共享进程的资源,如内存空…...
云架构:考量与框架
云架构:考量与框架 引言 在当今的数字化环境中,云计算已成为现代商业运营的基石。一个设计良好的云架构框架为可扩展、安全和弹性的系统奠定了基础。本文将深入探讨云架构的核心要素,讨论重要的考量因素、设计指南,以及最佳实践…...

SD下载、安装、使用、卸载-Stable Diffusion整合包v4.10发布!
目录 前言概述 SD安装1、安装软件2、启动3、配置4、运行5、测试 导入SD模型【决定画风】常用模型下载安装模型 SD卸载SD文生图提示词提示词使用技巧提示词的高级使用技巧强调关键词 前言 我向来不喜欢搞一些没有用的概念,所以直接整理可能用到的东西。 sd简单的说…...
java 发送邮件
前期准备 pom文件中引入 JavaMail API 和 JavaBean Activation FrameWork,得到两个jar包:mail.jar 和 activation.jar 发送简单邮件(只有邮件正文,普通文本) package com.zbttest.email;import com.sun.mail.util.Ma…...

聚类系列 (二)——HDBSCAN算法详解
在进行组会汇报的时候,为了引出本研究动机(论文尚未发表,暂不介绍),需要对DBSCAN、OPTICS、和HDBSCAN算法等进行详细介绍。在查询相关资料的时候,发现网络上对于DBSCAN算法的介绍非常多与细致,但…...
AngularJS HTML DOM
关于《AngularJS HTML DOM》的文章,我找到了一些有用的信息。这篇文章主要介绍了AngularJS如何通过特定的指令与HTML DOM元素进行交互。以下是一些关键点: ng-disabled 指令:这个指令用于将应用程序数据绑定到HTML的disabled属性。例如&#…...
C语言延时实现
C语言延时实现 在C语言中,delay 函数通过空循环实现延时,而不是像其他高级语言(如Python)直接使用 sleep 函数。这种实现方式是基于单片机的特性和C语言的底层操作。下面详细解释为什么这种空循环可以实现延时,以及它…...

OSI模型的网络层中产生拥塞的主要原因?
( 1 )缓冲区容量有限;( 1.5 分) ( 2 )传输线路的带宽有限;( 1.5 分) ( 3 )网络结点的处理能力有限;( 1 分…...

机器学习周报-ModernTCN文献阅读
文章目录 摘要Abstract 0 提升有效感受野(ERF)1 相关知识1.1 标准卷积1.2 深度分离卷积(Depthwise Convolution,DWConv)1.3 逐点卷积(Pointwise Convolution,PWConv)1.4 组卷积(Grou…...

什么是网关路由
1.认识网关 网关(Gateway)和路由(Router)是两个相关但不同的概念。 一、网关(Gateway) 定义 网关是一个网络节点,它充当了不同网络之间的连接点。可以将其看作是一个网络的 “大门”…...

信号的产生、处理
一、信号的概念 信号是linux系统提供的一种,向指定进程发送特定事件的方式。收到信号的进程,要对信号做识别和处理。信号的产生是异步的,进程在工作过程中随时可能收到信号。 信号的种类分为以下这么多种(用指令kill -l查看&…...
在Linux中,zabbix如何监控脑裂?
在Linux中,zabbix监控脑裂主要涉及对高可用(HA)系统中可能发生的节点间通信中断或不一致状态的监控。脑裂问题通常发生在具有冗余节点的高可用系统中,如集群、HA系统或分布式数据库系统,当节点之间失去通信时ÿ…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...