贝叶斯方法家族

贝叶斯方法

    • 机器学习框架
    • 贝叶斯方法
      • 贝叶斯和其他推断方法的区别
      • 朴素贝叶斯分类
      • 五个 NB 分类器
    • 贝叶斯推断
      • 马尔科夫-蒙特卡洛方法
      • 变分推断
      • 隐马尔科夫模型
    • 贝叶斯网络
      • 贝叶斯置信网络
    • 贝叶斯深度学习
      • 贝叶斯神经网络
      • 贝叶斯卷积神经网络
      • 贝叶斯图神经网络
      • 贝叶斯优化方法

 


机器学习框架

计算机都是通过数据理解世界,数据类型可分为时间数据、空间数据。

  1. 空间数据

    • 距离是衡量这些数据点之间差异的方法
    • 距离从一阶绝对值、二阶欧式距离、衡量不确定性程度/离散程度/数据纯度的熵
    • 在处理空间数据时,模型都是判别式模型 p ( y ∣ x ) p(y|x) p(yx),根据 x 判别 y
    • 包括K近邻算法(KNN)、决策树、神经网络、支持向量机(SVM)、CNN、RNN、transformer
    • 这些模型可以处理各种空间数据,识别其中的模式和结构,学习类别边界。
  2. 时间数据

    • 时间数据强调的是顺序性,这种数据类型在贝叶斯理论中尤为重要。
    • 处理时间数据时,都是生成式模型 p ( y , x ) − > p ( y ∣ x ) p(y,x)->p(y|x) p(y,x)>p(yx),根据联合概率分布,预测,条件概率密度分布。
    • 包括 VAE、GAN、扩散模型。
    • 这些模型能够有效地解析和预测随时间变化的数据趋势,学习概率分布。

 


贝叶斯方法

根据结果去猜原因是不好猜的。

  • 你看见一个小孩在踢足球,正向推导那很容易,直接估算窗户被踢碎的概率即可
  • 但如果只知道窗户被打破了,从结果猜测原因是很难的,原因太多了

贝叶斯方法巧妙的解决难解的逆概率问题 P ( A ∣ B ) = P ( 原因 ∣ 窗户破了 ) P(A|B)=P(原因|窗户破了) P(AB)=P(原因窗户破了)

贝叶斯的思想是:

  • 已知的P(B|A)(原因导致结果的概率)、P(A)(原因本身发生的概率)和P(B)(结果本身发生的概率)
  • 来计算P(A|B)(在结果发生的情况下原因发生的概率)

只需要问,A、B 事件都发生的概率是多少?

  • P(B) 的发生概率,P(A|B) 的发生概率 — B 发生的情况下,A 也发生的概率,等于 P ( B ) ∗ P ( A ∣ B ) P(B) * P(A|B) P(B)P(AB)
  • P(A) 的发生概率,P(B|A) 的发生概率 — A 发生的情况下,B 也发生的概率,等于 P ( A ) ∗ P ( B ∣ A ) P(A) * P(B|A) P(A)P(BA)
  • 俩者一定相等 — P ( B ) ∗ P ( A ∣ B ) = P ( A ) ∗ P ( B ∣ A ) P(B) * P(A|B)=P(A) * P(B|A) P(B)P(AB)=P(A)P(BA)
  • 我们求逆概率问题 P ( 原因 ∣ 窗户破了 ) = P ( A ∣ B ) = P ( B ∣ A ) P ( B ) ∗ P ( A ) P(原因|窗户破了)=P(A|B)=\frac{P(B|A)}{P(B)}*P(A) P(原因窗户破了)=P(AB)=P(B)P(BA)P(A)

因为 P ( A ) 、 P ( B ) 、 P ( B ∣ A ) P(A)、P(B)、P(B|A) P(A)P(B)P(BA) 都好算,才转成这样的形式

 
贝叶斯方法:

  • P ( A ∣ B ) = P ( B ∣ A ) P ( B ) ∗ P ( A ) P(A|B)=\frac{P(B|A)}{P(B)}*P(A) P(AB)=P(B)P(BA)P(A)

  • 新观念 = 调整因子 ∗ 老观念 新观念=调整因子*老观念 新观念=调整因子老观念

贝叶斯和其他推断方法的区别

  1. 根据结果去猜测原因:这是最基本的推理方法,通常称为“后验推理”或“逆向推理”。

    我们仅仅根据观察到的结果或效果来猜测可能的原因。

    例如,看到地上有水迹,我们可能推测之前下过雨。

    这种推理方法是直观的,但有时可能不够准确,因为相同的结果可能由多种不同的原因引起。

  2. 根据结果去猜测原因,并考虑先验知识:这种方法在逆向推理的基础上加入了“先验知识”的考虑。

    先验知识是指我们之前已经知道或相信的信息。

    在推理时结合先验知识,可以使我们的推测更加准确和有根据。

    在推测地上水迹的原因时,如果我们知道早上有浇水的习惯,那么我们可能会考虑浇水而不是下雨作为更可能的原因。

  3. 考虑先验知识,并利用新的数据来更新和改进推测:贝叶斯推理方式,观点随事实改变。

    不仅考虑先验知识,还会利用新的数据或信息来更新和改进我们的推测。

    这种方法是动态的,随着新信息的出现,原有的推测会被修正和更新。

    如果在考虑了浇水的可能性后,我们又获得了当地早上确实下过雨的气象数据,我们可能会重新评估并认为下雨是更可能的原因。

这三种方法在复杂性和精确性上逐渐提升,都是处理信息和进行决策时常用的逻辑推理方法。

 


朴素贝叶斯分类

为什么叫朴素贝叶斯?

因为采用了一个特别简化的假设,即"朴素假设"。

朴素假设是指在朴素贝叶斯分类器中,特征之间被假定为相互独立,而不考虑它们之间的关联性。

这个假设在实际情况下通常是不成立的,因为很多情况下特征之间都会存在一定的相关性。

然而,尽管这个假设非常简化,朴素贝叶斯分类器却在许多实际应用中表现得出奇地好。
 
比如,垃圾邮件过滤。

朴素贝叶斯

在朴素贝叶斯中,我们假设文本中的每个词都是相互独立的,忽略了词汇之间的关联性。

这就是“朴素”的含义。

朴素贝叶斯通过计算每个单词在垃圾邮件和非垃圾邮件中的出现概率,然后根据文本中的单词来计算整个邮件是垃圾邮件的概率。

它的计算简单、高效,但忽略了词汇之间的语义关系。

 
非朴素方法

非朴素方法考虑了词汇之间的关联性,通常使用更复杂的模型来捕捉这些关系。

例如,可以使用N-gram模型考虑词汇的顺序,或者使用深度学习模型如循环神经网络(RNN)或卷积神经网络(CNN)来学习词汇之间的语义关系。

这种方法更复杂,需要更多的计算资源和数据,但可以更准确地捕捉文本的复杂性。
 
效果对比

  • 朴素贝叶斯:由于它的简单性和高效性,在某些情况下,朴素贝叶斯可以表现得很好。

    特别是在数据量不大、特征维度较低的情况下,它可以快速训练和进行分类,并且可能获得不错的结果。

    然而,由于它忽略了词汇之间的关联性,可能会在处理语义复杂的邮件时失效。

  • 非朴素方法:非朴素方法通常需要更多的计算资源和数据来训练,但它们可以更好地捕捉文本的语义关系,因此在处理复杂的语言结构和垃圾邮件变种时可能更加强大。它们可以考虑词汇的顺序、上下文和语义含义,从而提高了分类的准确性。

效果对比取决于数据集的大小和复杂性,以及可用的计算资源。

五个 NB 分类器

  1. BernoulliNB (伯努利朴素贝叶斯):

    • 适用于二元型特征数据,通常用于文本分类任务中,其中特征表示是否出现某个词汇。
    • 假设特征是二元的(存在或不存在),因此它适合处理二值化数据,例如垃圾邮件分类,其中词汇的存在或不存在被编码为1和0。
    • 伯努利朴素贝叶斯使用伯努利分布来建模特征的条件概率。
  2. GaussianNB (高斯朴素贝叶斯):

    • 适用于连续型特征数据,通常用于数值型数据的分类任务。
    • 假设特征数据服从高斯分布(正态分布),因此适用于处理实数型特征,如一些传感器测量的连续数据。
    • 高斯朴素贝叶斯假设特征的条件概率是高斯分布。
  3. CategoricalNB (分类朴素贝叶斯):

    • 适用于具有有限类别的离散型特征数据,例如文本分类任务中的词汇,其中每个特征是一个类别。
    • 假设特征是离散的,通常表示为整数或类别标签。
    • 分类朴素贝叶斯使用多项分布来建模特征的条件概率。
  4. MultinomialNB (多项式朴素贝叶斯):

    • 通常用于文本分类任务,其中特征表示文档中单词的频率或计数。
    • 假设特征是多项分布,通常表示为正整数,表示某个类别或单词出现的次数。
    • 多项式朴素贝叶斯适用于处理文本数据中的多类别问题,如文本分类。
  5. ComplementNB (补充朴素贝叶斯):

    • 也用于文本分类任务,特别适用于不平衡类别问题。
    • 补充朴素贝叶斯的特点是对每个类别的特征分布使用补充的方式,它用每个类别的非目标类别文档来计算特征的条件概率。
    • 这种方法在处理不平衡数据集时通常比其他朴素贝叶斯分类器表现更好。

这些朴素贝叶斯分类器在不同类型的数据和问题上表现良好,选择合适的分类器通常取决于数据的特点和任务的要求。

  • 一般都试一下就行。

【过滤垃圾邮件】代码实现:

import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import BernoulliNB, GaussianNB, CategoricalNB, MultinomialNB, ComplementNB
from sklearn.metrics import accuracy_score# 假设有一份邮件数据集,X为邮件内容,y为标签(0表示非垃圾邮件,1表示垃圾邮件)
X = ["Hello, this is a legitimate email.","Congratulations! You've won a prize!","Invest in this amazing opportunity now!","Important meeting tomorrow at 10 AM.","Get rich quick with our scheme!","Free gift with every purchase.","Urgent: Your account needs verification.","Exclusive offer for a limited time!","Meeting rescheduled to 2 PM.","Claim your lottery winnings now!","Important update on your account.","Last chance to grab this deal!"]y = [0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1]# 使用CountVectorizer将文本数据转换为特征向量
vectorizer = CountVectorizer()
X_vectorized = vectorizer.fit_transform(X)# 划分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X_vectorized, y, test_size=0.25, random_state=0)# 创建不同类型的朴素贝叶斯分类器实例
classifiers = {"BernoulliNB": BernoulliNB(),"GaussianNB": GaussianNB(),"CategoricalNB": CategoricalNB(),"MultinomialNB": MultinomialNB(),"ComplementNB": ComplementNB()
}# 训练和测试不同类型的分类器,并计算准确度分数
scores = {}
for name, classifier in classifiers.items():# 训练分类器classifier.fit(X_train, y_train)# 预测测试数据y_pred = classifier.predict(X_test)# 计算准确度分数score = accuracy_score(y_test, y_pred)# 存储准确度分数scores[name] = score# 输出不同类型朴素贝叶斯分类器的准确度分数
for name, score in scores.items():print(f"{name} 准确度:{score}")

先将文本数据转换为特征向量,然后使用五种不同类型的朴素贝叶斯分类器(BernoulliNB、GaussianNB、CategoricalNB、MultinomialNB、ComplementNB)进行训练和测试,

计算它们的准确度分数。

最后,输出不同类型朴素贝叶斯分类器的准确度分数,以比较性能。
 


贝叶斯推断

 


马尔科夫-蒙特卡洛方法

【史上最易懂】马尔科夫链-蒙特卡洛方法:基于马尔科夫链的采样方法,从概率分布中随机抽取样本,从而得到分布的近似

 


变分推断

【史上最易懂】变分推断:从【求分布】的推断问题,变成【缩小距离】的优化问题,用简单的分布 q 去近似复杂的分布 p

 


隐马尔科夫模型

 


贝叶斯网络

 


贝叶斯置信网络

 


贝叶斯深度学习

 


贝叶斯神经网络

 


贝叶斯卷积神经网络

 


贝叶斯图神经网络

 


贝叶斯优化方法

 

在这里插入图片描述

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

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

相关文章

shell简单截取curl GET返回的body消息体

目录 需求背景: 示例: 解决方式: 需求背景: 用shell解析 curl命令GET到的消息体,获取body消息体里的某个字段的值,只是个简单的示例,可以在此基础上更改满足自己的需求 示例: curl一个API…

纳米软件射频测试系统助力放大器静态参数测试

放大器是可以把输入讯号的电压或功率放大,增加信号幅度的一种装置,可以提高信号质量、增加功率、提高灵敏度等,被应用于通讯、广播、雷达、电视、自动控制等领域。对放大器进行测试是为了确保放大器的性能和稳定性,以保证其可以正…

【Linux】nc 网络诊断 | 文件传输 命令详解

目录 一、命令简介 二、命令使用 2.1 测试服务器 2.2 端口连通性测试 2.2.1tcp端口连通性测试 2.2.2udp端口连通性测试 2.3 文件及目录的传输 2.3.1 文件传输(TCP端口) 2.3.2 文件传输(UDP端口) 相关文章: 【网络】抓包工具Wireshark下载安装和基本使用教…

SpringBoot参数校验@Validated、@Valid

SpringBoot参数校验Validated、Valid(javax.validation) 一、应用场景 在实际开发中,前端校验并不安全,任何人都可以通过接口来调用我们的服务,就算加了一层token的校验,有心人总会转空子,来传…

Linux下安装jdk、tomcat

linux下安装jdk、tomcat 一、linux下安装jdk1.1.下载Linux版本的JDK1.2.Linux安装JDk1.3.设置环境变量1.4.卸载JDK 二、linux下安装tomcat2.1.下载Linux版本的Tomcat2.2.在usr目录下新建tomcat目录2.3.进入到tomcat目录中解压下载的tomcat安装包2.4.配置环境变量-前提是已经安装…

助力工业园区作业违规行为检测预警,基于YOLOv3开发构建工业园区场景下作业人员违规行为检测识别系统

在很多工业园区生产作业场景下保障合规合法进行作业生产操作,对于保护工人生命安全降低安全隐患有着非常重要的作用,但是往往在实际的作业生产中,因为一个安全观念的淡薄或者是粗心大意,对于纪律约束等意思薄弱,导致在…

unity C#什么是线程锁,以及使用案例

文章目录 原理1. **互斥**(Mutual Exclusion):2. **缓存一致性与内存屏障**:3. **操作系统的支持**:4. **编程语言级别的实现**:5. **避免死锁**:图示 实例1实例2 原理 线程锁的原理主要是为了在多线程环境…

AI对决:ChatGPT与文心一言的比较

. 个人主页:晓风飞 专栏:数据结构|Linux|C语言 路漫漫其修远兮,吾将上下而求索 文章目录 引言ChatGPT与文心一言的比较Chatgpt的看法文心一言的看法Copilot的观点chatgpt4.0的回答 模型的自我评价自我评价 ChatGPT的优势在这里插入图片描述 文…

【送书活动七期】CMeet系列 技术生态沙龙:技术人职业交流会·杭州场-转鸿蒙 对应用开发来说是否是职业发展新机会

CSDN致力于促进城市区域内尖端新兴技术开发者交流,提供开放自由的切磋平台。在近期热议的话题中,“华为鸿蒙系统不再兼容安卓应用”的消息成了程序员们广泛关注并引发思考的问题。 因此便有了我们此次的活动探讨议题! 目录 题外话开场简单介绍活动主办方介绍活动话题讨论升职加…

微信小程序-----全局配置与页面配置

目录 前言 全局配置文件 一、window 1. 小程序窗口的组成部分 2. window 节点常用的配置项 3. 设置导航栏的标题 4. 设置导航栏的背景色 5. 设置导航栏的标题颜色 6. 全局开启下拉刷新功能 7. 设置下拉刷新时窗口的背景色 8. 设置下拉刷新时 loading 的样式 9. 设置…

dolphinscheduler分布式集群部署指南(小白版)

1.Apache DolphinScheduler概述 官方文档地址:https://dolphinscheduler.apache.org/zh-cn/docs/3.1.9 1.1.DolphinScheduler简介 摘自官网:Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景&#xf…

Hcie datacom实验手册哪里下载!

一、官方下载 首先,最直接的方式就是从华为官方网站下载Hcie Datacom实验手册。作为华为认证体系的核心资料,官方下载的内容是最全面、最准确的。您只需要访问华为官方网站,在搜索框中输入“Hcie Datacom实验手册”,即可找到相应…

十、Qt 操作PDF文件

《一、QT的前世今生》 《二、QT下载、安装及问题解决(windows系统)》《三、Qt Creator使用》 ​​​ 《四、Qt 的第一个demo-CSDN博客》 《五、带登录窗体的demo》 《六、新建窗体时,几种窗体的区别》 《七、Qt 信号和槽》 《八、Qt C 毕业设计》 《九、Qt …

考研英语打卡

[爱心]长难句分享第三十一天解析 [玫瑰]【词汇】:• astonishing [əˈstɑːnɪʃɪŋ] adj. 令人惊讶的• purchase [ˈpɜːrtʃəs] n. 购买• upmarket [ˌʌpˈmɑːrkɪt] adj. 高级的• grocery [ˈɡroʊsəri] n. 食品杂货店• chain [tʃeɪn] n. 连锁店…

【Linux驱动】Linux的中断系统 | 中断的重要数据结构

🐱作者:一只大喵咪1201 🐱专栏:《Linux驱动》 🔥格言:你只管努力,剩下的交给时间! 目录 🏀Linux系统的中断⚽中断分类软中断和硬中断中断的上半部和下半部 ⚽tasklet⚽工…

普冉32位单片机 PY32C642,M0+内核,1.7 V ~ 5.5 V宽工作电压

PY32C642 单片机采用高性能的 32 位 ARM Cortex-M0内核,宽电压工作范围。嵌入 24Kbytes Flash 和 3 Kbytes SRAM 存储器,最高工作频率 24 MHz。包含多种不同封装类型产品。工作温度范围为-40C ~ 85C,工作电压范围 1.7 V ~ 5.5 V。1 路 12 位A…

深度强化学习的变道策略:Harmonious Lane Changing via Deep Reinforcement Learning

偏理论,假设情况不易发生 摘要 多智能体强化学习的换道策略,不同的智能体在每一轮学习后交换策略,达到零和博弈。 和谐驾驶仅依赖于单个车辆有限的感知结果来平衡整体和个体效率,奖励机制结合个人效率和整体效率的和谐。 Ⅰ. 简…

在Excel中如何打开VBA,这里提供两种方法

想在Excel中创建或添加自己的自定义Visual Basic脚本吗?第一步是了解如何在Excel中打开VBA编辑器。 在易用性和整体功能方面,没有其他电子表格应用程序能与Excel相提并论。无论你想做什么,只要你能深入挖掘Excel的深层菜单,就有很…

正点原子imx6ull网络环境配置:开发板和电脑通过网线直连、电脑WiFi上网

1.硬件连接 开发板通过网线连接电脑。电脑连接wifi 2.VMware设置 2.1添加桥接模式和NAT模式 1)打开vm设置 2)设置网络适配器为桥接模式,不要勾选 “赋值物理网络连接状态” 3) 添加一个网络适配器并设置成NAT模式,…

阿里云服务器怎么样?阿里云服务器优势、价格及常见问题

阿里云服务器ECS英文全程Elastic Compute Service,云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务,阿里云提供多种云服务器ECS实例规格,如ECS经济型e实例、通用算力型u1、ECS计算型c7、通用型g7、GPU实例等,阿里云服务器网al…