【数据分析】贝叶斯定理
文章目录
- 一、贝叶斯定理的基本形式
- 二、贝叶斯定理的推导
- 三、贝叶斯定理的应用
- 四、贝叶斯定理的优势与挑战
贝叶斯定理(Bayes' Theorem)是概率论中的一个重要公式,它提供了一种根据已有信息更新事件发生概率的方式。贝叶斯定理的核心思想是通过已知的条件概率反推未知的概率,广泛应用于统计学、机器学习、医学诊断、金融分析等领域。
❄️ 通常,事件A在事件B已发生的条件下发生的概率,与事件B在事件A已发生的条件下发生的概率是不一样的。然而,这两者是有确定的关系的,贝叶斯定理就是这种关系的陈述。
贝叶斯公式的一个用途,即透过已知的三个概率而推出第四个概率。贝叶斯定理与随机变量的条件概率以及边际概率分布有关。
一、贝叶斯定理的基本形式
贝叶斯定理描述了条件概率的计算方式。设有事件 A A A和 B B B,贝叶斯定理给出了事件 A A A在事件 B B B发生的情况下发生的条件概率 P ( A ∣ B ) P(A|B) P(A∣B),其公式为:
P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B) = \frac{P(B|A) P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)P(A)
其中:
- A和B为随机事件;
- P ( A ∣ B ) P(A|B) P(A∣B)表示在事件 B B B发生的情况下,事件 A A A发生的条件概率;
- P ( B ∣ A ) P(B|A) P(B∣A)表示在事件 A A A发生的情况下,事件 B B B发生的条件概率;
- P ( A ) P(A) P(A)表示事件 A A A的
先验概率,即在没有任何其他信息的情况下,事件 A A A发生的概率; - P ( B ) P(B) P(B)表示事件 B B B的
边际概率,是事件 B B B发生的总概率,不能为 0。
二、贝叶斯定理的推导
贝叶斯定理的推导基于条件概率的定义。根据条件概率的定义:
P ( A ∣ B ) = P ( A ∩ B ) P ( B ) , P ( B ∣ A ) = P ( A ∩ B ) P ( A ) P(A|B) = \frac{P(A \cap B)}{P(B)}, \quad P(B|A) = \frac{P(A \cap B)}{P(A)} P(A∣B)=P(B)P(A∩B),P(B∣A)=P(A)P(A∩B)
其中, P ( A ∩ B ) {P(A \cap B)} P(A∩B)表示A、B的联合概率,也记为:P(AB), P(A,B)。
将这两个公式合并,可以得到:
P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B) = \frac{P(B|A) P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)P(A)
从而得出了贝叶斯定理的公式。
三、贝叶斯定理的应用
-
垃圾邮件分类
在垃圾邮件分类中,希望通过邮件内容来判断该邮件是否为垃圾邮件。设事件 A A A为“邮件是垃圾邮件”,事件 B B B为“邮件包含特定的关键词”。希望计算在已知邮件包含某些关键词的条件下,邮件是垃圾邮件的概率 P ( A ∣ B ) P(A|B) P(A∣B)。贝叶斯定理给出了更新概率的方式:
P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B) = \frac{P(B|A) P(A)}{P(B)} P(A∣B)=P(B)P(B∣A)P(A)
通过计算 P ( B ∣ A ) P(B|A) P(B∣A)(垃圾邮件中出现关键词的概率)、 P ( A ) P(A) P(A)(垃圾邮件的先验概率)和 P ( B ) P(B) P(B)(包含关键词的总概率),可以预测某封邮件是否为垃圾邮件。 -
机器学习中的贝叶斯分类器
在机器学习中,贝叶斯分类器是一种基于贝叶斯定理的分类方法。最著名的贝叶斯分类器是
朴素贝叶斯分类器,它假设特征之间条件独立。朴素贝叶斯分类器的目标是通过计算每个类别的后验概率来进行分类。对于一个包含 n n n个特征 X = ( x 1 , x 2 , … , x n ) X = (x_1, x_2, \dots, x_n) X=(x1,x2,…,xn)的样本,贝叶斯分类器的预测类别 C C C是通过最大化后验概率 P ( C ∣ X ) P(C|X) P(C∣X)来实现的:
P ( C ∣ X ) = P ( X ∣ C ) P ( C ) P ( X ) P(C|X) = \frac{P(X|C) P(C)}{P(X)} P(C∣X)=P(X)P(X∣C)P(C)其中 P ( X ∣ C ) P(X|C) P(X∣C)是给定类别 C C C下,特征 X X X的条件概率, P ( C ) P(C) P(C)是类别 C C C的先验概率, P ( X ) P(X) P(X)是特征 X X X的边际概率。
由于计算 P ( X ∣ C ) P(X|C) P(X∣C)时假设特征之间独立,因此可以简化为:
P ( X ∣ C ) = ∏ i = 1 n P ( x i ∣ C ) P(X|C) = \prod_{i=1}^{n} P(x_i|C) P(X∣C)=i=1∏nP(xi∣C)然后通过最大化 P ( C ∣ X ) P(C|X) P(C∣X)来进行分类。
四、贝叶斯定理的优势与挑战
优势:
- 处理不确定性:贝叶斯定理特别适合在存在不确定性时使用。通过更新概率,可以不断修正和优化预测结果。
- 先验知识的利用:贝叶斯定理能够结合先验知识(先验概率 P ( A ) P(A) P(A)),使得在样本较少的情况下,依然能够得到合理的预测。
- 灵活性:贝叶斯定理不仅适用于二分类问题,也适用于多分类问题,并且可以扩展到连续变量的情况。
挑战:
- 先验知识的选择:贝叶斯定理的效果很大程度上依赖于先验概率的选择。若先验知识不准确,可能会导致预测结果的不可靠。
- 计算复杂度:在高维数据中,计算条件概率可能非常复杂,特别是在特征之间不独立的情况下,计算量会大幅增加。
相关文章:
【数据分析】贝叶斯定理
文章目录 一、贝叶斯定理的基本形式二、贝叶斯定理的推导三、贝叶斯定理的应用四、贝叶斯定理的优势与挑战 贝叶斯定理(Bayes Theorem)是概率论中的一个重要公式,它提供了一种根据已有信息更新事件发生概率的方式。贝叶斯定理的核心思想是通过…...
学AI编程的Prompt工程,marscode
利用marscode做个创意应用 Datawhale-AI活动 首先把自己的创意告诉marscode,marscode会针对你的创意开始写代码。如果在把创意给marscode前有更好的梳理,会有更好的结果。 对于一个新开始的项目,只需要点击apply进行应用 由于ai的效果不稳定…...
python中的与时间相关的模块
python中的与时间相关的模块 1. time 模块2. datetime 模块3. calendar 模块4. timeit 模块5. pytz 模块6. dateutil 模块参考资料 1. time 模块 time 模块提供了时间相关的函数,主要用于测量时间间隔、获取当前时间、格式化时间等 主要功能 获取当前时间ÿ…...
【Python运维】构建基于Python的自动化运维平台:用Flask和Celery
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在现代IT运维中,自动化运维平台扮演着至关重要的角色,它能够显著提高运维效率,减少人为错误,并且增强系统的可维护性。本文将引导读者如…...
Qt 12.28 day3
作业: 1】 思维导图 2】 在登录界面的登录取消按钮进行以下设置: 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&a…...
Java爬虫获取速卖通(AliExpress)商品详情
1. 环境准备 在开始编写爬虫之前,需要准备以下环境和工具: Java开发环境:确保你的计算机上安装了Java开发工具包(JDK)。IDE:选择一个Java集成开发环境,如IntelliJ IDEA、Eclipse等。第三方库&…...
Learning Multi-Scale Photo Exposure Correction
Abstract 用错误的曝光捕捉照片仍然是相机成像的主要错误来源。曝光问题可分为以下两类:(i)曝光过度,即相机曝光时间过长,导致图像区域明亮和褪色;(ii)曝光不足,即曝光时间过短,导致图像区域变暗。曝光不足和曝光过度都会大大降低…...
【Rust自学】7.4. use关键字 Pt.1:use的使用与as关键字
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 7.4.1. use的作用 use的作用是将路径导入到当前作用域内。而引入的内容仍然是遵守私有性原则,也就是只有公共的部分引入进来才…...
C++ 设计模式:门面模式(Facade Pattern)
链接:C 设计模式 链接:C 设计模式 - 代理模式 链接:C 设计模式 - 中介者 链接:C 设计模式 - 适配器 门面模式(Facade Pattern)是一种结构型设计模式,它为子系统中的一组接口提供一个一致&#…...
从0到100:基于Java的大学选修课选课小程序开发笔记(上)
背景 为学生提供便捷的课程选择方式,并帮助学校进行课程管理和资源调配;主要功能包括:课程展示,自主选课,取消选课,后台录入课程,统计每门课程报名情况,导出数据,用户管…...
【算法题解】B. President‘s Office - Python实现
题目描述 Berland的总统办公室内设有多个办公桌,其中总统和其属下各自拥有独特颜色的办公桌。总统希望统计哪些属下的办公桌紧邻他的办公桌,但不记得确切的数量。 输入描述: 第一行包含三个值 n, m, c,分别是办公室的长度、宽度…...
【Spring Boot 】详解
Spring Boot 详解 一、Spring Boot 概述 (一)产生背景 随着 Java 应用的日益复杂,传统 Spring 框架在项目搭建与配置方面愈发繁琐,大量的 XML 配置、依赖管理等工作耗费开发者诸多精力。为解决这些痛点,Spring Boot …...
Redisson 框架详解
目录 一.为什么要使用分布式锁? 二.Redisson 的基本使用: 1.添加 Redisson 依赖: 2.在 application.yml 配置 Redis: 3. 创建 Redisson 客户端: (1)单节点模式: (…...
正确导入MapStruct并避免与Lombok编译冲突的深入分析
正确导入MapStruct并避免与Lombok编译冲突的深入分析 一、MapStruct与Lombok概述 1.1 MapStruct简介 MapStruct是一个代码生成器,它基于约定优于配置的原则,通过注解处理器在编译时自动生成源代码,实现对象之间的属性映射。MapStruct的优势在于减少样板代码,提高开发效率…...
K8S 黑魔法之如何从 Pod 拿到节点的命令行
搞 K8S 运维的时候,偶尔会遇到一个难题,定位到问题出在某个节点上,而由于权限审批,错误配置等等各种原因,没有办法拿到节点的 SSH 权限,无法进入节点命令行进一步排障。 这个时候,就可以用这个…...
【bluedroid】A2dp Source播放流程源码分析(4)
接上集分析:【bluedroid】A2dp Source播放流程源码分析(3)-CSDN博客 蓝牙和AUDIO之间的接口 蓝牙和audio之间的通信是通过socket,管理socket中的文件是UIPC,UIPC管理两条socket。 A2DP_CTRL_PATH /data/misc/bluedroid/.a2dp_ctrl A2DP_DATA_PATH /data/misc/bluedroid…...
计算机网络 (9)数据链路层
前言 计算机网络中的数据链路层(Data Link Layer)是OSI(开放系统互连)参考模型中的第二层,位于物理层和网络层之间。它在物理层提供的服务基础上,负责在相邻节点之间建立、维护和终止链路,确保数…...
kubernetes学习-集群搭建部署(一)
一、开三台虚拟机进行试验(centos7) 1、初始操作 # 关闭防火墙 systemctl stop firewalld systemctl disable firewalld# 关闭selinux sudo sed -i s/enforcing/disabled/ /etc/selinux/config # 永久 setenforce 0 # 临时# 关闭swap sudo swapoff -a # 临时 s…...
docker commit生成的镜像瘦身
1、清除宿主系统的docker资源 docker system prune -a --volumes 2、清理容器内系统的临时文件和缓存 # 删除包管理器缓存 apt-get clean rm -rf /var/lib/apt/lists/* # 删除日志文件 rm -rf /var/log/* # 删除临时文件 rm -rf /tmp/* 3、安装docker squash工具࿰…...
基于Spring Boot的宠物领养系统的设计与实现(代码+数据库+LW)
摘 要 如今社会上各行各业,都在用属于自己专用的软件来进行工作,互联网发展到这个时候,人们已经发现离不开了互联网。互联网的发展,离不开一些新的技术,而新技术的产生往往是为了解决现有问题而产生的。针对于宠物领…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
【深度学习新浪潮】什么是credit assignment problem?
Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...
jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...
React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构
React 实战项目:微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇!在前 29 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...
海云安高敏捷信创白盒SCAP入选《中国网络安全细分领域产品名录》
近日,嘶吼安全产业研究院发布《中国网络安全细分领域产品名录》,海云安高敏捷信创白盒(SCAP)成功入选软件供应链安全领域产品名录。 在数字化转型加速的今天,网络安全已成为企业生存与发展的核心基石,为了解…...
