1、贝叶斯定理

P(A∣B)=P(A)P(B∣A)P(B)

P(A|B)是已知B发生后A的条件概率,也由于得自B的取值而被称作A的后验概率。

P(B|A)是已知A发生后B的条件概率,也由于得自A的取值而被称作B的后验概率。

P(A)是A的先验概率或边缘概率。之所以称为”先验”是因为它不考虑任何B方面的因素。

P(B)是B的先验概率或边缘概率。

贝叶斯定理可表述为:后验概率 = (相似度 * 先验概率) / 标准化常量

也就是说,后验概率与先验概率和相似度的乘积成正比。

比例P(B|A)/P(B)也有时被称作标准相似度,贝叶斯定理可表述为:后验概率 = 标准相似度 * 先验概率

假设{Ai}是事件集合里的部分集合,对于任意的Ai,贝叶斯定理可用下式表示:

2、贝叶斯网络

贝叶斯网络,由一个有向无环图(DAG)和条件概率表(CPT)组成。

贝叶斯网络通过一个有向无环图来表示一组随机变量跟它们的条件依赖关系。它通过条件概率分布来参数化。每一个结点都通过P(node|Pa(node))来参数化,Pa(node)表示网络中的父节点。

如图是一个简单的贝叶斯网络,其对应的全概率公式为:

P(a,b,c)=P(c∣a,b)P(b∣a)P(a)

较复杂的贝叶斯网络,其对应的全概率公式为:

P(x1,x2,x3,x4,x5,x6,x7)=P(x1)P(x2)P(x3)P(x4∣x1,x2,x3)P(x5∣x1,x3)P(x6∣x4)P(x7∣x4,x5)

3、贝叶斯网络Student模型

一个学生拥有成绩、课程难度、智力、SAT得分、推荐信等变量。通过一张有向无环图可以把这些变量的关系表示出来,可以想象成绩由课程难度和智力决定,SAT成绩由智力决定,而推荐信由成绩决定。该模型对应的概率图如下:

4、通过概率图python类库pgmpy构建Student模型

代码如下:

代码如下:

from pgmpy.models import BayesianModel

from pgmpy.factors.discrete import TabularCPD

# 通过边来定义贝叶斯模型

model = BayesianModel([('D', 'G'), ('I', 'G'), ('G', 'L'), ('I', 'S')])

# 定义条件概率分布

cpd_d = TabularCPD(variable='D', variable_card=2, values=[[0.6, 0.4]])

cpd_i = TabularCPD(variable='I', variable_card=2, values=[[0.7, 0.3]])

# variable:变量

# variable_card:基数

# values:变量值

# evidence:

cpd_g = TabularCPD(variable='G', variable_card=3,

values=[[0.3, 0.05, 0.9, 0.5],

[0.4, 0.25, 0.08, 0.3],

[0.3, 0.7, 0.02, 0.2]],

evidence=['I', 'D'],

evidence_card=[2, 2])

cpd_l = TabularCPD(variable='L', variable_card=2,

values=[[0.1, 0.4, 0.99],

[0.9, 0.6, 0.01]],

evidence=['G'],

evidence_card=[3])

cpd_s = TabularCPD(variable='S', variable_card=2,

values=[[0.95, 0.2],

[0.05, 0.8]],

evidence=['I'],

evidence_card=[2])

# 将有向无环图与条件概率分布表关联

model.add_cpds(cpd_d, cpd_i, cpd_g, cpd_l, cpd_s)

# 验证模型:检查网络结构和CPD,并验证CPD是否正确定义和总和为1

model.check_model()

获取上述代码构建的概率图模型:

In[1]:model.get_cpds()

Out[1]:

[,

,

,

,

]

获取结点G的概率表:

获取结点G的概率表:

In[2]:print(model.get_cpds('G'))

╒═════╤═════╤══════╤══════╤═════╕

│ I │ I_0 │ I_0 │ I_1 │ I_1 │

├─────┼─────┼──────┼──────┼─────┤

│ D │ D_0 │ D_1 │ D_0 │ D_1 │

├─────┼─────┼──────┼──────┼─────┤

│ G_0 │ 0.3 │ 0.05 │ 0.9 │ 0.5 │

├─────┼─────┼──────┼──────┼─────┤

│ G_1 │ 0.4 │ 0.25 │ 0.08 │ 0.3 │

├─────┼─────┼──────┼──────┼─────┤

│ G_2 │ 0.3 │ 0.7 │ 0.02 │ 0.2 │

╘═════╧═════╧══════╧══════╧═════╛

获取结点G的基数:

In[3]: model.get_cardinality('G')

Out[3]: 3

新数据节点值的预测跟计算条件概率非常相似,我们需要查询预测变量的其他全部特征。困难在于通过分布概率去代替更多可能的变量状态。

In[7]: infer.map_query('G')

Out[7]: {'G':

python贝叶斯网络预测模型_概率图模型之:贝叶斯网络相关推荐

  1. 西瓜书+实战+吴恩达机器学习(二一)概率图模型之贝叶斯网络

    文章目录 0. 前言 1. 贝叶斯网络结构 2. 近似推断 2.1. 吉布斯采样 3. 隐马尔可夫模型HMM 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 0. 前言 概率 ...

  2. 机器学习之概率图模型(贝叶斯概率,隐马尔科夫模型)

    一.贝叶斯公式 在学习概率图模型之前先要了解贝叶斯公式: 由公式(1),(2)可得: 这便是贝叶斯公式,其中条件概率P(A/B)称为后验概率,概率P(A),P(B)称为先验概率,条件概率P(B/A), ...

  3. 数据流图怎么画_概率图模型怎么画?5个步骤完成专业模型图

    概率图模型是什么呢?概率图模型是用图形模式来表示各个变量概率相关关系以及与模型有关的变量的联合概率分布的一类模型.概率图理论可分为概率图模型表示理论.概率图模型推理理论和概率图模型学习理论三部分.概率 ...

  4. linux如何配置网络设置_如何在Linux中配置网络

    linux如何配置网络设置 将Linux计算机连接到网络非常简单,除非不是这样. 在本文中,我讨论了基于Red Hat的Linux发行版的主要网络配置文件,并介绍了两个网络启动服务:古老的网络启动和有 ...

  5. pb网络编程_新品上市 | 9.2声道网络影音接收机DRX3.3

    专为满足您的娱乐梦想而研发 DRX-3.3可让您在家中建立最多三个区域的聆听空间,升级的四核SoC支持802.11ac(MIMO)高速Wi-Fi®规格让多房间无线音频串流更顺畅,同时还可享受最高5.2 ...

  6. python贝叶斯优化算法_自动调参——贝叶斯优化算法hyperopt

    注:转载请注明出处. 本篇文章主要记录了贝叶斯优化算法hyperopt的学习笔记,如果想看自动化调参中的网格调参和遗传优化算法TPOT,请查看我另外两篇文章:网格搜索gridSearchCV和遗传优化 ...

  7. 时间序列python复杂网络实例_基于时间序列数据的复杂网络重构

    摘要:现实生活中,复杂系统俯首即是,和人们的生活息息相关,遍及的领域包括社会,经济,物理,生物和生态等.为了便于研究,复杂网络通常被看成是复杂系统的一种抽象描述,其中,网络中的单个节点对应于系统中的单 ...

  8. python遥感影像地物分类_基于轻量化语义分割网络的遥感图像地物分类方法与流程...

    本发明属于图像处理 技术领域: ,特别涉及一种地物分类方法,可用于土地利用分析.环境保护以及城市规划. 背景技术: :遥感图像地物分类,旨在取代繁琐的人工作业,利用地物分类方法,得到输入遥感图像的地物 ...

  9. visio网络拓扑图_人船模型怎么画?分享高颜值模型图软件

    人船模型是指一个原本处于静态的系统,通过互相作用后,在一个方向上达到动量守恒. "人船模型"是由人和船两个物体构成的系统,一个人从船头走到船尾,船停在静止的水面上,设人的质量为m, ...

  10. python小波分析法检测火焰_一种基于小波分析的网络流量异常检测方法

    一种基于小波分析的网络流量异常检测方法 杜臻 ; 马立鹏 ; 孙国梓 [期刊名称] <计算机科学> [年 ( 卷 ), 期] 2019(046)008 [摘要] 对大量网络流量数据进行高质 ...

最新文章

  1. Spring MVC国际化
  2. JS中的!= 、== 、!==、===的用法和区别
  3. 数据结构中的逻辑结构简介
  4. 【一类题】二维数点的几个做法
  5. SpringBoot POM web开发(spring-boot-starter-web)
  6. 远程办公第一天遇尴尬:企业通讯软件集体罢工、全天开视频
  7. airpods pro是按压还是触摸_AirPods Pro入手开箱 稍后补充使用感受
  8. C C++如何获取当前系统时间
  9. 奥数题-求空间4点构成的四面体体积
  10. huawei.xmind
  11. 【JWPlayer】官方JWPlayer去水印步骤
  12. 关于maven :pom.xml文件中父工程部分提示spring-boot-starter-parent:2.0.7.RELEAS not found
  13. 前端seo优化详细方案
  14. Unity3D 鼠标选择物体高光显示信息
  15. Selector空轮询
  16. 希尔排序(实现+总结)
  17. 刚子扯谈:专注 极致 口碑 快
  18. matlab图像边缘宽度调整
  19. 如何打造一场引爆朋友圈的母亲节营销活动
  20. python实验室信息管理系统_有没有免费的实验室信息管理系统LIMS?

热门文章

  1. 什么是1号信令、7号信令和PRI信令?
  2. Java实现Modbus/TCP客户端与modsim通信
  3. 通过anaconda下载 opencv的方法
  4. 数据结构课设:仓库管理系统(C++)
  5. Xcode 9以下(xip) 官方直接下载地址(离线下载)
  6. 三菱系统刀库乱刀处理_FANUC系统对圆盘式刀库现场操作及调试
  7. Windows与Linux的UEFI引导修复教程
  8. 一键备份服务器文件夹权限,教大家一键设置局域网共享文件夹权限
  9. iptv服务器维护中,iptv升级服务器地址
  10. JAVA实现Html转Pdf(wkhtmltopdf)