一文讲明白朴素贝叶斯算法及其计算公式(入门普及)
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系统或分布式数据库系统,当节点之间失去通信时ÿ…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...

android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...