一文讲明白朴素贝叶斯算法及其计算公式(入门普及)

1、贝叶斯算法

贝叶斯定理由英国数学家托马斯·贝叶斯 ( Thomas Bayes) 提出的,用来描述两个条件概率之间的关系。通常,事件A在事件B 发生的条件下与事件 B 在事件 A 发生的条件下,它们两者的概率并不相同,但是它们两者之间存在一定的相关性,并具有以下公式,称之为贝叶斯公式:

对于一般的机器学习算法学习者而言,大家看到这种公式基本上都是在努力回忆那些学过的数学知识,总有一种似曾相识的感觉,但却不能准确理解,为此首先进行复习和回归数学中的那些个事情。

 ☀什么是条件概率?

条件概率就像是在一个已经有了某种“前提情况”下,去看另一件事情发生的可能性。比如说,你想知道在“今天是下雨天”这个前提条件下,“路上堵车”的概率。“今天是下雨天”就是那个已经发生的事件B,“路上堵车” 就是事件A,我们想求的就是P(A|B)。

☀如何理解2个事件存在一定的相关性?

当我们考虑两个条件概率P(A|B)P(B|A)时,它们之间的相关性源于事件A和B本身的内在联系。例如,假设事件A是“一个人患有流感”,事件B是“一个人发烧”。 

P(A|B)表示在一个人发烧的情况下,他患有流感的概率。而P(B|A)表示在一个人患有流感的情况下,他发烧的概率。很明显,这两个概率是相关的,因为流感和发烧这两个事件是紧密联系在一起的。如果一个人更容易在患流感的时候发烧,那么P(B|A)的值就会比较高;反过来,发烧是患流感的一个常见症状,那么在看到一个人发烧时,他患流感的概率P(A|B)也会受到P(B|A)的影响。

条件概率是“贝叶斯公式”的关键所在,它也被称为“似然概率”, 一般是通过历史数据统计得到.贝叶斯公式可以预测事件发生的概率,两个本来相互独立的事件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的所有项相乘。

②条件概率的理解:P(X|Y=y)是在类别Y为y的条件下,样本具有特征向量X的概率。例如,在判断一封邮件是否是垃圾邮件(Y是邮件类别,y表示垃圾邮件这个类别),X可能是邮件中包含的一些特征,如是否包含特定关键词、发件人地址是否陌生等,P(X|Y=y)就是在邮件是垃圾邮件的情况下,出现这些特征组合的概率。

 由以上两式可以计算出后验概率为:

 P(Y)是先验概率,即在没有考虑样本X的情况下,事件Y发生的概率。

这部分体现了在给定类别Y下,各个特征xi的条件概率的乘积,这通常与朴素贝叶斯分类器相关,假设各个特征之间相互独立。

P(X)是样本X出现的概率。

这个公式用于根据先验概率、特征的条件概率和样本概率来计算后验概率,在分类问题(如文本分类、图像分类等)中有着广泛的应用。例如在垃圾邮件分类中,可以是邮件是否为垃圾邮件的类别,是邮件中的词汇特征等。通过计算后验概率来判断邮件属于垃圾邮件还是正常邮件的可能性。

由此,可以得到一个样本数据属于类别yi的计算公式如下:

 这个公式可由上一个公式得出。

至此,朴素贝叶斯分类的基本公式已讲解完毕,下次将针对贝叶斯分类的应用具体来展开。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/502438.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot Maven 项目 pom 中的 plugin 插件用法整理

把 SpringBoot Maven 项目打包成 jar 文件时,我们通常用到 spring-boot-maven-plugin 插件。 前面也介绍过,在 spring-boot-starter-parent POM 和 spring-boot-starter POM 中都有插件的管理,现在我们就撸一把构建元素中插件的用法。 一、…

PDF文件提示-文档无法打印-的解决办法

背景信息 下载了几个签名的PDF文件,想要打印纸质版,结果打印时 Adobe Acrobat Reader 提示【文档无法打印】: 解决办法 网上的方案是使用老版本的PDF阅读器, 因为无法打印只是一个标识而已。 PDF文件不能打印的五种解决方案-zhihu 这些方…

SQL Server 数据库 忘记密码

1、先用windows 身份验证 连接 2、安全性--登录名 3、设置 身份验证 4、重启电脑 5、登录 登陆成功!!! ------------------------------------------------------------------ --1、查询登录账号信息 ------------------------------------------------------------------ -- …

oscp备考 oscp系列——Kioptix Level 1靶场 古老的 Apache Vuln

目录 前言 1. 主机发现 2. 端口扫描 3. 指纹识别 4. 目录扫描 5. 漏洞搜索和利用 前言 oscp备考,oscp系列——Kioptix Level 1靶场 Kioptix Level 1难度为简单靶场,主要考察 nmap的使用已经是否会看输出,以及是否会通过应用查找对应漏…

OpenGL材质系统和贴图纹理

上一篇文章当中笔者为大家介绍了风氏光照模型,相信大家也发现了光照着色器当中有设置有很多控制光照强度的参数,而所谓的材质系统就是我们可以人为的去调节这些参数,让一个物体的反光效果能够更加接近我们现实生活当中的一些物体。 材质系统…

光缆生产车间可视化,让智能制造更透明

图扑光缆生产车间可视化系统通过实时监控和数据分析,优化生产流程,提升产品质量和产能效率,为光缆制造业提供智能化解决方案,推动产业升级。

深入理解 Java 接口的回调机制

前言 回调是一种非常重要的编程技术,它广泛应用于事件驱动的编程、异步任务和框架设计中。在 Java 中,回调机制通常通过 接口 来实现。本篇博客将详细解析 Java 接口的回调原理、实现方式,以及实际开发中的应用场景。 泪崩了,期末…

LangChain 介绍

LangChain 是一个用于构建语言模型驱动的应用程序(Language Model Applications)的开发框架,旨在帮助开发者将大型语言模型(LLMs)集成到更复杂的、具备上下文感知能力的应用中。LangChain 支持使用模型如 OpenAI GPT-3…

Nginx代理本地exe服务http为https

Nginx代理本地exe服务http为https 下载NginxNginx命令exe服务http代理为https 下载Nginx 点击下载Nginx 下载好之后是一个压缩包,解压放到没有中文的路径下就可以了 Nginx命令 调出cmd窗口cd到安装路径 输入:nginx -v 查看版本 nginx -h&#xff…

cursor 使用技巧

一、创建项目前期步骤 1.先给AI设定一个对应项目经理角色, 2.然后跟AI沟通项目功能,生成功能设计文件:README.md README.md项目功能 3.再让AI总结写出开发项目规则文件: .cursorrules 是技术栈进行限定,比如使用什…

创建并配置华为云虚拟私有云

目录 私有云 创建虚拟私有云 私有云 私有云是一种云计算模式,它将云服务部署在企业或组织内部的私有基础设施上,仅供该企业或组织内部使用,不对外提供服务.私有云的主要特点包括: 私密性:私有云的资源(如…

【数据结构-堆】力扣2530. 执行 K 次操作后的最大分数

给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你的 起始分数 为 0 。 在一步 操作 中&#xff1a; 选出一个满足 0 < i < nums.length 的下标 i &#xff0c; 将你的 分数 增加 nums[i] &#xff0c;并且 将 nums[i] 替换为 ceil(nums[i] / 3) 。 返回在 恰好…

【SpringBoot】当 @PathVariable 遇到 /,如何处理

1. 问题复现 在解析一个 URL 时&#xff0c;我们经常会使用 PathVariable 这个注解。例如我们会经常见到如下风格的代码&#xff1a; RestController Slf4j public class HelloWorldController {RequestMapping(path "/hi1/{name}", method RequestMethod.GET)publ…

【跟着官网学技术系列之MySQL】第2天之MySQL版本:创新和 LTS

前言 在当今信息爆炸的时代&#xff0c;拥有信息检索的能力很重要。 作为一名软件工程师&#xff0c;遇到问题&#xff0c;你会怎么办&#xff1f;带着问题去搜索引擎寻找答案&#xff1f;亦或是去技术官网&#xff0c;技术社区去寻找&#xff1f; 根据个人经验&#xff0c;一…

开源存储详解-分布式存储与ceph

ceph体系结构 rados&#xff1a;reliable, autonomous, distributed object storage, rados rados采用c开发 对象存储 ceph严格意义讲只提供对象存储能力&#xff0c;ceph的块存储能力实际是基于对象存储库librados的rbd 对象存储特点 对象存储采用put/get/delete&#xf…

操作系统大题整理

专题一 程序代码题&#xff1a;程序设计与分析&#xff0c;主要考的是线程&#xff0c;多线程的并发&#xff1f; 大题第一问&#xff08;1&#xff09;操作系统的结构有哪几种常用的结构&#xff1f; 宏内核&#xff1a;宏内核是将操作系统的主要功能模块都集中在内核的一种结…

设计模式学习[14]---状态模式

文章目录 前言1.原理阐述2.引例3.状态模式对象化4.状态模式优化 总结 前言 状态模式&#xff0c;乍一听名字其实好像很好理解的样子&#xff0c;状态嘛&#xff0c;人在不同状态会有不同的行为模式。那软件的状态模式又是什么样子的&#xff1f;根据一个变量的值&#xff0c;执…

【.NET】Kafka消息队列介绍,使用Confluent.Kafka集成Kafka消息队列

一、Kafka介绍 kafka是一种高吞吐量、分布式、可扩展的消息中间件系统&#xff0c;最初由LinkedIn公司开发。随着不断的发展&#xff0c;在最新的版本中它定义为分布式的流处理平台&#xff0c;现在在大数据应用中也是十分广泛。 它可以处理大量的实时数据流&#xff0c;被广…

基于ESP32的桌面小屏幕实战[5]:PCB下单

1. 焊接调试前准备 PCB下单 点击“PCB下单” 检查一下DRC 确认无错误之后&#xff0c;确认下单 然后就会跳转到下面的网页 基本上保持默认选项即可。可以看到“焊盘喷镀”有3个选项。 在选择表面处理工艺时&#xff0c;应综合考虑产品的具体需求、环保法规以及成本等因素。例…

下载b站高清视频

需要使用的edge上的一个扩展插件&#xff0c;所以选择使用edge浏览器。 1、在edge浏览器上下载 强力视频下载合并 扩展插件 2、在edge上打开b站&#xff0c;登录自己账号&#xff08;登录后才能下载到高清&#xff01;&#xff01;&#xff09;。打开一个视频&#xff0c;选择自…