当前位置: 首页 > news >正文

机器学习 贝叶斯公式

这是条件概率的计算公式

𝑃(𝐴|𝐵)=𝑃(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.lryc.cn/news/484309.html

相关文章:

  • Scala-注释、标识符、变量与常量-用法详解
  • 大数据学习14之Scala面向对象--至简原则
  • docker 安装之 windows安装
  • JS 实现游戏流畅移动与按键立即响应
  • LabVIEW大数据处理
  • NVR录像机汇聚管理EasyNVR多品牌NVR管理工具视频汇聚技术在智慧安防监控中的应用与优势
  • 海思3403对RTSP进行目标检测
  • Vue之插槽(slot)
  • 分布式服务高可用实现:复制
  • 基于yolov8、yolov5的车型检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • 机器学习—决定下一步做什么
  • Java Optional详解:避免空指针异常的优雅方式
  • SpringBoot开发——整合EasyExcel实现百万级数据导入导出功能
  • AcWing 1097 池塘计数 flood fill bfs搜索
  • R门 - rust第一课陈天 -内存知识学习笔记
  • java itext后端生成pdf导出
  • 信号-3-信号处理
  • 38配置管理工具(如Ansible、Puppet、Chef)
  • 网络技术-定义配置ACL规则的语法和命令
  • 动态规划一>子数组系列
  • 一觉睡醒,全世界计算机水平下降100倍,而我却精通C语言——scanf函数
  • Altium Designer使用技巧(五)
  • Docker 的安装与使用
  • Android Studio 中三方库依赖无法找到的解决方案
  • PGMP练-DAY24
  • 【C++动态规划 最长公共子序列】1035. 不相交的线|1805
  • FFmpeg的基本结构
  • react 受控组件和非受控组件
  • C语言模块化概述
  • WPF 中的视觉层和逻辑层有什么区别?