机器学习 贝叶斯公式

这是条件概率的计算公式

𝑃(𝐴|𝐵)=𝑃(B|A)𝑃(𝐴)/𝑃(𝐵)

全概率公式

𝑃(𝐵)=𝑃(𝐵|𝐴)𝑃(𝐴)+𝑃(𝐵|𝐴′)𝑃(𝐴′)
 

条件概率的另一种写法:

贝叶斯推断

对条件概率公式进行变形,可以得到如下形式:

我们把P(A)称为"先验概率"(Prior probability),即在B事件发生之前,我们对A事件概率的一个判断。

P(A|B)称为"后验概率"(Posterior probability),即在B事件发生之后,我们对A事件概率的重新评估。

P(B|A)/P(B)称为"可能性函数"(Likelyhood),这是一个调整因子,使得预估概率更接近真实概率。

所以,条件概率可以理解成下面的式子:

后验概率=先验概率x调整因子

这就是贝叶斯推断的含义。我们先预估一个"先验概率",然后加入实验结果,看这个实验到底是增强还是削弱了"先验概率",由此得到更接近事实的"后验概率"。

朴素贝叶斯推断

理解了贝叶斯推断,那么让我们继续看看朴素贝叶斯。贝叶斯和朴素贝叶斯的概念是不同的,区别就在于“朴素”二字,朴素贝叶斯对条件概率分布做了条件独立性的假设。 比如下面的公式,假设有n个特征:

根据贝叶斯定理,后验概率 P(a|X) 可以表示为:

其中:

P(X|a) 是给定类别 ( a ) 下观测到特征向量 ​的概率;

P(a) 是类别 a 的先验概率;

P(X) 是观测到特征向量 X 的边缘概率,通常作为归一化常数处理。

朴素贝叶斯分类器的关键假设是特征之间的条件独立性,即给定类别 a ,特征 ​ 和 ​ (其中 ​ 相互独立。)

因此,我们可以将联合概率 P(X|a) 分解为各个特征的概率乘积:

将这个条件独立性假设应用于贝叶斯公式,我们得到:

这样,朴素贝叶斯分类器就可以通过计算每种可能类别的条件概率和先验概率,然后选择具有最高概率的类别作为预测结果。

from sklearn.datasets import load_iris

from sklearn.naive_bayes import MultinomialNB

from sklearn.model_selection import train_test_split

import joblib

model=MultinomialNB()

x,y=load_iris(return_X_y=True)

x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2)

model.fit(x_train,y_train)

score=model.score(x_test,y_test)

print(score)

joblib.dump(model,'../model/bayes.bin')

model=joblib.load('../model/bayes.bin')

y_predict=model.predict([[1,2,3,4]])

print(y_predict)

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

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

相关文章

【ACM出版】第四届信号处理与通信技术国际学术会议(SPCT 2024)

第四届信号处理与通信技术国际学术会议(SPCT 2024) 2024 4th International Conference on Signal Processing and Communication Technology 2024年12月27-29日 中国深圳 www.icspct.com 重要信息 三轮征稿时间:2024年11月30日23:5…

【工具插件类教学】在 Unity 中使用 iTextSharp 实现 PDF 文件生成与导出

目录 一、准备工作 1. 安装 iTextSharp 2. 准备资源文件 二、创建 ExportPDFTool 脚本 1、初始化 PDF 文件,设置字体 2、添加标题、内容、表格和图片 三、使用工具类生成 PDF 四、源码地址 在 Unity 项目中,我们有时会需要生成带有文本、表格和图片的 PDF 文件,以便…

Java 责任链模式 减少 if else 实战案例

一、场景介绍 假设有这么一个朝廷,它有 县-->府-->省-->朝廷,四级行政机构。 这四级行政机构的关系如下表: 1、县-->府-->省-->朝廷:有些地方有完整的四级行政机构。 2、县-->府-->朝廷:直…

vue项目使用eslint+prettier管理项目格式化

代码格式化、规范化说明 使用eslintprettier进行格式化,vscode中需要安装插件ESLint、Prettier - Code formatter,且格式化程序选择为后者(vue文件、js文件要分别设置) 对于eslint规则,在格式化时不会全部自动调整&…

易考八股文之Elasticsearch合集

1、为什么要使用 Elasticsearch? 系统中的数据, 随着业务的发展, 时间的推移, 将会非常多,而业务中往往采用模糊查询进行数据的 搜索,而模糊查询会导致查询引擎放弃索引, 导致系统查询数据时都是全表扫描&…

Python 使用链式赋值

n n_ max(round(n * gd), 1) if n > 1 else n # depth gainPython 使用链式赋值将同一个值同时赋给多个变量。这意味着 n 和 n_ 会同时接收相同的结果值。我们可以将这行代码逐步拆解,以便理解传值的顺序和方法: 逐步解析 先计算右侧表达式的值&a…

Leetcode 整数转罗马数字

这段代码的算法思想是基于罗马数字的减法规则,将整数转换为罗马数字的字符串表示。下面是详细的解释: 算法步骤: 定义数值和符号对应关系:代码中定义了两个数组:values 和 symbols。values 数组包含了罗马数字的数值&…

web——sqliabs靶场——第六关——报错注入和布尔盲注

这一关还是使用报错注入和布尔盲注 一. 判断是否有sql注入 二. 判断注入的类型 是双引号的注入类型。 3.报错注入的检测 可以使用sql报错注入 4.查看库名 5. 查看表名 6.查看字段名 7. 查具体字段的内容 结束 布尔盲注 结束

Spring Cloud Eureka 服务注册与发现

Spring Cloud Eureka 服务注册与发现 一、Eureka基础知识概述1.Eureka两个核心组件2.Eureka 服务注册与发现 二、Eureka单机搭建三、Eureka集群搭建四、心跳续约五、Eureka自我保护机制 一、Eureka基础知识概述 1.Eureka两个核心组件 Eureka Server :服务注册中心…

PowerShell 的执行策略限制了脚本的运行

问题 . : 无法加载文件 C:\Users\pumpkin84514\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本。有关详细信 息,请参阅 https:/go.microsoft.com/fwlink/?LinkID135170 中的 about_Execution_Policies。 所在位置 行:1 字符: 3 …

计算机网络(3)网络拓扑和IP地址,MAC地址,端口地址详解

ok网络拓扑以及令人困惑的IP地址,MAC地址和端口地址来了!!! 网络拓扑是指计算机网络中各个节点(如计算机、路由器、交换机等)以及它们之间连接的布局或结构。(人话翻译过来也就是网络拓扑是计算…

Git - Think in Git

记录一些使用Git时的一些想法 区的概念 当 clone 仓库代码到本地后四个区相同 当编辑代码后,工作区 与其余三个区不同 当使用 add 将修改的代码暂存后,索引区与 工作区 相同 当使用 commit 将修改的代码提交后,仓库区 与 索引区 和 工作区 相…

CAN通讯演示(U90-M24DR)

概述 CAN通讯一般用的不多,相比于Modbus通讯不是特别常见,但也会用到,下面介绍一下CAN通讯,主要用U90军用PLC演示一下具体的数据传输过程。想更具体的了解的话,可以自行上网学习,此处大致介绍演示。…

时序论文19|ICML24 : 一篇很好的时序模型轻量化文章,用1k参数进行长时预测

论文标题:SparseTSF: Modeling Long-term Time Series Forecasting with 1k Parameters 论文链接:https://arxiv.org/pdf/2402.01533 代码链接:https://github.com/lss-1138/SparseTSF 前言 最近读论文发现时间序列研究中,模型…

(动画版)排序算法 -希尔排序

文章目录 1. 希尔排序(Shellsort)1.1 简介1.2 希尔排序的步骤1.3 希尔排序的C实现1.4 时间复杂度1.5 空间复杂度1.6 希尔排序动画 1. 希尔排序(Shellsort) 1.1 简介 希尔排序(Shells Sort),又…

Python学习从0到1 day26 第三阶段 Spark ④ 数据输出

半山腰太挤了,你该去山顶看看 —— 24.11.10 一、输出为python对象 1.collect算子 功能: 将RDD各个分区内的数据,统一收集到Driver中,形成一个List对象 语法: rdd.collect() 返回值是一个list列表 示例: from …

DNS解析库

DNS解析库 dnsDNS的解析库以及域名的详解解析库dns解析的端口dns域名的长度限制流程优先级在现实环境中实现内网的dns解析 练习(Ubuntu内网实现DNS解析)主服务器备服务器 dns 域名系统,域名和ip地址互相映射的一个分布式的数据库&#xff0c…

kafka 生产经验——数据积压(消费者如何提高吞吐量)

bit --> byte --> kb -->mb -->gb --> tb --> pb --> eb -> zb -->yb

Database Advantages (数据库系统的优点)

数据库管理系统(DBMS)提供了一种结构化的方式来存储、管理和访问数据,与传统的文件处理系统相比,数据库提供了许多显著的优点。以下是数据库系统的主要优势: 1. Data Integrity (数据完整性) 概念:数据完整…

【记录】公司管理平台部署:容器化部署

前置条件 技能要求 了解Docker基本使用和常用命令。会写Dockerfile文件。会写docker-compose文件环境要求 云服务器,已安装好安装Docker本机 IntelliJ IDEA 2022.1.3配置 配置服务器SSH连接 进入 Settings -> Tools -> SSH Configurations 点击加号创建SSH连接配置 填…