机器学习_15_贝叶斯算法

文章目录

  • 1 贝叶斯定理相关公式
  • 2 朴素贝叶斯算法
    • 2.1 朴素贝叶斯算法推导
    • 2.2 朴素贝叶斯算法流程
  • 3 高斯朴素贝叶斯
  • 4 伯努利朴素贝叶斯
  • 5 多项式朴素贝叶斯
  • 6 贝叶斯网络
    • 6.1 最简单的一个贝叶斯网络
    • 6.2 全连接贝叶斯网络
    • 6.3 “正常”贝叶斯网络
    • 6.4 实际贝叶斯网络:判断是否下雨
    • 6.5 贝叶斯网络判定条件独立-01
    • 6.6 贝叶斯网络判定条件独立-02
    • 6.7 贝叶斯网络判定条件独立-03

1 贝叶斯定理相关公式

  • **先验概率P(A):**在不考虑任何情况下,A事件发生的概率。

  • **条件概率P(B|A):**A事件发生的情况下,B事件发生的概率。

在这里插入图片描述

  • **后验概率P(A|B):**在B事件发生之后,对A事件发生的概率的重新评估。

  • **全概率:**如果A和A’构成样本空间的一个划分,那么事件B的概率为:A和A’的概率分别乘以B对这两个事件的概率之和。
    在这里插入图片描述

  • 基于条件概率的贝叶斯定律数学公式

在这里插入图片描述
在这里插入图片描述

2 朴素贝叶斯算法

  • 朴素贝叶斯(Naive Bayes, NB)是基于“特征之间是独立的”这一朴素假设,应用贝叶斯定理的监督学习算法
  • 对应给定的 样本X 的特征向量x1 ,x2 ,…,xm;该 样本X 的 类别y 的概率可以由贝叶斯公式得到:

在这里插入图片描述

2.1 朴素贝叶斯算法推导

在这里插入图片描述

2.2 朴素贝叶斯算法流程

朴素贝叶斯算法流程/定义如下:

  • 设x={x1 ,x2 ,…,xm}为待分类项,其中xi为x的一个特征属性。
  • 类别集合为C={y1 ,y2 ,…,yn }。
  • 分别计算P(y1 |x),P(y2 |x),…,P(yn |x)的值(贝叶斯公式)。
  • 如果P(yk |x)=max{P(y1 |x),P(y2 |x),…,P(yn |x)},那么认为x为yk类型。

在这里插入图片描述

3 高斯朴素贝叶斯

  • Gaussian Naive Bayes是指当特征属性为连续值时,而且分布服从高斯分布,那么在计算P(x|y)的时候可以直接使用高斯分布的概率公式:

在这里插入图片描述

  • 因此只需要计算出各个类别中此特征项划分的各个均值和标准差

4 伯努利朴素贝叶斯

  • Bernoulli Naive Bayes是指当特征属性为连续值时,而且分布服从伯努利分布,那么在计算P(x|y)的时候可以直接使用伯努利分布的概率公式:
    在这里插入图片描述

伯努利分布是一种离散分布,只有两种可能的结果。1表示成功,出现的概率为p; 0表示失败,出现的概率为q=1-p;其中均值为E(x)=p,方差为Var(X)=p(1-p)。

在这里插入图片描述

5 多项式朴素贝叶斯

  • Multinomial Naive Bayes是指当特征属性服从多项分布(特征是离散的形式的时候),从而,对于每个类别y,参数为θy=(θy1y2,…,θyn),其中n为特征属性数目,那么P(xi|y)的概率为θyi

在这里插入图片描述

Ny是总样本个数,n是总的类别个数,Nyi是类别为θyi的样本个数,α为平滑值。

当α=1时,称为Laplace平滑,当0<α<1时,称为Lidstone平滑,α=0时不做平滑;平滑的主要作用是可以克服条件概率为0的问题。

6 贝叶斯网络

  • 把某个研究系统中涉及到的随机变量,根据是否条件独立绘制在一个有向图中,就形成了贝叶斯网络。
  • 贝叶斯网络(Bayesian Network),又称有向无环图模型(directed acyclic graphical model, DAG),是一种概率图模型,根据概率图的拓扑结构,考察一组随机变量{X1 ,X2 ,…,Xn}及其N组条件概率分布(Conditional Probabililty Distributions, CPD)的性质。
  • 当多个特征属性之间存在着某种相关关系的时候,使用朴素贝叶斯算法就没法解决这类问题,那么贝叶斯网络就是解决这类应用场景的一个非常好的算法。
  • 一般而言,贝叶斯网络的有向无环图中的节点表示随机变量,可以是可观察到的变量,或隐变量,未知参数等等。连接两个节点之间的箭头代表两个随机变量之间的因果关系(也就是这两个随机变量之间非条件独立),如果两个节点间以一个单箭头连接在一起,表示其中一个节点是“因” ,另外一个是“果” ,从而两节点之间就会产生一个条件概率值。
  • 注意:每个节点在给定其直接前驱的时候,条件独立于其后继
  • 贝叶斯网络的关键方法是图模型,构建一个图模型我们需要把具有因果联系的各 个变量用箭头连在一起。贝叶斯网络的有向无环图中的节点表示随机变量。连接 两个节点的箭头代表此两个随机变量是具有因果关系的。
  • 贝叶斯网络是模拟人的认知思维推理模式的,用一组条件概率以及有向无环图对 不确定性因果推理关系建模。

6.1 最简单的一个贝叶斯网络

在这里插入图片描述

6.2 全连接贝叶斯网络

每一对节点之间都有边连接:

在这里插入图片描述

6.3 “正常”贝叶斯网络

在这里插入图片描述

6.4 实际贝叶斯网络:判断是否下雨

有一天早晨,Bruce离开他的房子的时候发现他家花园中的草地是湿的,有两种可能,第一:昨天晚上下雨了,第二:他昨天晚上忘记关掉花园中的喷水器,接下来,他观察他的邻居Joe,发现他家花园中的草地也是湿的,因此,他推断,他家的草地湿了是因为昨天晚上下雨的缘故。

在这里插入图片描述

6.5 贝叶斯网络判定条件独立-01

在这里插入图片描述

6.6 贝叶斯网络判定条件独立-02

在这里插入图片描述

6.7 贝叶斯网络判定条件独立-03

在这里插入图片描述

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

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

相关文章

算法学习——华为机考题库5(HJ31 - HJ35)

算法学习——华为机考题库5&#xff08;HJ31 - HJ35&#xff09; HJ31 单词倒排 描述 对字符串中的所有单词进行倒排。 说明&#xff1a; 1、构成单词的字符只有26个大写或小写英文字母&#xff1b; 2、非构成单词的字符均视为单词间隔符&#xff1b; 3、要求倒排后的单…

LeAPI 后端接口开发 - 发布、下线接口

一、上线接口&#xff08;仅管理员&#xff09; 1. 校验请求参数 2. 判断&#xff08;测试&#xff09;接口是否可以调用 引入调用接口的客户端&#xff08;自己写的 SDK&#xff09;注入客户端实例调用接口 3. 修改数据库中接口的状态 /*** 上线&#xff08;发布&#xff…

机器视觉培训机构的保就业可信吗?就业不了退款是真的吗?

显然是不可能的。某些机器视觉培训机构为了取信于人&#xff0c;请来保险公司再出一份保单&#xff0c;对学员未来的就业薪资承保&#xff0c;如在某机器视觉培训机构培训后就业薪资低于12000元&#xff0c;由某保险公司理赔学员全部培训费用。这种取信于人的操作&#xff0c;我…

爬虫(二)

1.同步获取短视频 1.只要播放地址对Json数据解析&#xff0c;先把列表找出&#xff1a; 2.只想要所有的播放地址&#xff0c;通过列表表达式循环遍历这个列表拿到每个对象&#xff0c;再从一个个对象里面找到Video,再从Video里面找到播放地址(play_addr),再从播放地址找到播放…

动态内存管理 智能指针 shared_ptr、unique_ptr、weak_ptr + 定制删除器

动态内存管理常出现的两种问题&#xff1a; 1.忘记释放内存,造成内存泄漏 2.这块内存还有其他指针指向的情况下&#xff0c;就释放了它&#xff0c;会产生引用非法内存的指针&#xff0c;例如 如果类中有属性指向堆区&#xff0c;做赋值操作时会出现浅拷贝的问题 内存泄漏分…

在jetbrains IDEA/Pycharm/Android Studio中安装官方rust插件,开始rust编程

在idea插件市场搜索rust&#xff1a;JetBrains Marketplace &#xff0c;就可以找到rust插件&#xff1a; jetbrains官方rust插件地址&#xff1a;[Deprecated] Rust - IntelliJ IDEs Plugin | Marketplace 直接在idea中搜索rust好像是搜不到的&#xff1a; 需要在这个插件市场…

【数据结构】二叉树链式结构的实现

简单不先于复杂&#xff0c;而是在复杂之后。 文章目录 1. 二叉树链式结构的实现1.1 前置说明1.2 二叉树的遍历1.2.1 前序、中序以及后序遍历1.2.2 层序遍历 1.3 节点个数以及高度等1.4 二叉树基础oj练习1.5 二叉树的创建和销毁 1. 二叉树链式结构的实现 1.1 前置说明 在学习二…

Cambalache in Ubuntu

文章目录 前言apt install flatpak这很ok后记 前言 gtkmm4相比gtkmm3有很多改革, 代码也干净了许多, 但在windows上开发 有ui设计器那自然方便很多, 但glade又不支持gtkmm4, windows上装Cambalache很是困难. 各种问题都找不到答案.于是 我用VMware虚拟机Ubuntu20.xx安装Cambal…

macOS虚拟机安装全过程的详细教程

macOS虚拟机安装全过程的详细教程 一、安装虚拟机软件 选择软件&#xff1a;首先&#xff0c;你需要选择一个适合macOS的虚拟机软件。在本教程中&#xff0c;我们以VirtualBox为例。下载与安装&#xff1a;访问VirtualBox的官网&#xff0c;下载适用于macOS的安装包。运行安装…

【leetcode热题100】颜色分类

难度&#xff1a; 中等通过率&#xff1a; 40.7%题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目描述 给定一个包含红色、白色和蓝色&#xff0c;一共 n 个元素的数组&#xff0c;原地对它们进行排序&#xff0c;使得相同颜…

高校建设AI算力平台方案探索

近年来&#xff0c;人工智能行业发展迅速&#xff0c;在自动驾驶、金融、医疗、教育等行业广泛应用。尤其是ChatGPT发布以后更是掀起了生成式AI的热潮&#xff0c;国内各大互联网厂商也相继发布自己的AI大模型。这也造成了大量的AI人才缺口&#xff0c;同时促进了高校的AI专业建…

CSP-202305-2-矩阵运算

CSP-202305-2-矩阵运算&#xff1a;题目链接 知识点一&#xff1a;申请矩阵 1.动态分配 // 申请 int** dynamicArray new int*[rows]; for (int i 0; i < rows; i) {dynamicArray[i] new int[cols]; }// 释放 for (int i 0; i < rows; i) {delete[] dynamicArray[…

有哪些流行的中文开源语言模型?

支持中文的流行开源语言模型有很多&#xff0c;这些模型在自然语言处理领域的中文任务上表现出色&#xff0c;包括文本分类、情感分析、机器翻译、问答系统等。以下是一些支持中文的流行开源语言模型&#xff1a; 1. **BERT-Base, Chinese**&#xff1a;Google发布的BERT模型的…

【Linux】【Shell】常用压缩和解压缩命令(超详细)

目录 1. 指令&#xff1a; 1.1 tar 1.2 gz、.tar.gz 1.3 .bz2、.tar.bz2、.bz 1.4 .z、.tar.z 1.5 .zip 1.6 .rar 1.7 lzop 2. 示例&#xff1a; 1. 指令&#xff1a; 快速压缩&#xff1a;XZ_DEFAULTS"-T0" tar cJvf xxxxx.tar.xz sourcefile&#xff08;压…

解决浏览器端 globalThis is not defined 报错

解决浏览器端 globalThis is not defined 报错 前言解决办法&#xff1a; 前言 在使用低版本火狐浏览器出现报错globalThis is not defined 解决办法&#xff1a; 在vue的index.html 中添加 this.globalThis || (this.globalThis this) <head><script>this.g…

Power BI无法加载模型无法加载与此报表关联的模型架构。请确保已连接服务器,然后重试。这是可能遇到什么问题了

在Power BI中遇到“无法加载与此报表关联的模型架构。请确保已连接服务器&#xff0c;然后重试。”这样的错误信息&#xff0c;通常意味着模型的数据源有问题&#xff0c;或者模型与报表之间的连接存在问题。以下是一些可能的解决方案&#xff1a; 检查数据源连接&#xff1a; …

Lambda表达式(匿名函数)

C11中引入了lambda表达式&#xff0c;定义匿名的内联函数。 我们可以直接原地定义函数而不用再跑到外面去定义函数跳来跳去。 同时在stl的排序上也有作用。 [capture] (parameters) mutable ->return-type {statement}下面逐一介绍各个参数的含义. [capture] : 捕获&#…

Java语法学习线程基础

Java语法学习线程基础 大纲 概念创建线程线程终止常用方法用户线程和守护线程线程的七大状态线程的同步互斥锁线程死锁释放锁 具体案例 1.概念 2. 创建线程 第一种&#xff1a; class Cat extends Thread {int time 0;Overridepublic void run() {while (true) {System.o…

重写Sylar基于协程的服务器(5、IO协程调度模块的设计)

重写Sylar基于协程的服务器&#xff08;5、IO协程调度模块的设计&#xff09; 重写Sylar基于协程的服务器系列&#xff1a; 重写Sylar基于协程的服务器&#xff08;0、搭建开发环境以及项目框架 || 下载编译简化版Sylar&#xff09; 重写Sylar基于协程的服务器&#xff08;1、…

C++设计模式-单一职责原则

单一职责原则定义了类的封装规范。&#xff08;封装、继承、多态&#xff09; 定义&#xff1a;有且仅有一个引起类变化的原因。 e.g.1.一个需要重新封装的类 class A { public:void funName() {}void funSex() {}void funAge() {}void funCourse() {}//要重新封装到其他类v…