课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(上)

简介: 课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例

全文链接:http://tecdat.cn/?p=32462

分析师:Chang Zhang


贝叶斯网络(BN)是一种基于有向无环图的概率模型,它描述了一组变量及其相互之间的条件依赖性点击文末“阅读原文”获取完整课程代码数据


贝叶斯网络在信息不完备的情况下通过可以观察随机变量推断不可观察的随机变量,对于解决复杂的不确定性和关联性问题有很强的优势。


基本概念


有向无环图(DAG):DAG的结点V包括随机变量(类别和特征),有向连接E(A->B)表示结点A是结点B的parent,且B与A是有依赖关系的(不独立)。条件概率表集合:引入了一个条件性独立(conditional independence)概念,即图中任意结点v在给定v的parent结点的情况下,与图中其它结点都是独立的,也就是说P(v|par(v),x1,x2...,xn) = P(v|par(v))。这里par(v)表示v的parent结点集,x1,x2,...,xn表示图中其它结点。

贝叶斯网络实施步骤


1、确定随机变量间的拓扑关系,形成DAG。2、训练贝叶斯网络参数——估计出各节点的条件概率表。这一步也就是要完成条件概率表的构造。


结构学习


1、基于评分搜索的方法:将结构学习视为组合优化问题,首先通过定义评分函数对BN结构空间中的不同元素与样本数据的拟合程度进行度量,然后利用搜索算法确定评分最高的网络结构,即与数据拟合最好的网络结构。

2、基于约束的方法:利用统计或信息论的方法定量的分析变量间的依赖关系以获取最优地表达这些关系的网络结构。首先对训练数据集进行统计测试,尤其是条件独立性测试,确定出变量之间的条件独立性,然后利用变量之间的条件独立性构造一个有向无环图,以尽可能多的涵盖这些条件独立性。

3、基于评分搜索和约束相混合的方法:首先采用条件独立性检验缩减搜索空间,然后将此搜索空间作为输入以限制基于评分的搜索。


结构学习——基于评分搜索的方法


将结构学习视为组合优化问题,首先通过定义评分函数对BN结构空间中的不同元素与样本数据的拟合程度进行度量,然后利用搜索算法确定评分最高的网络结构,即与数据拟合最好的网络结构。

1、爬山法(hc):从一个初始的网络结构开始,通过加边、减边和转边三个搜索算子对当前网络结构进行修改,并对修改后的网络结构进行评分,最后找出评分最高的结构

2、禁忌搜索(tabu):是一种亚启发式随机搜索算法,通过对局部领域逐步搜索得到全局最优解。为了避免陷入局部最优和重复迭代,禁忌搜索算法采用了一种禁忌表,利用该表对解的移动搜索过程进行记录和选择,当搜索的最优解已经在禁忌表中时,则会自动放弃该解,避免重复搜索。

结构学习——基于约束的方法(Grow-Shrink)


结构学习——基于混合的方法


MMHC算法结合了条件独立性测试、搜索和评分等方法, 该算法分为2个阶段, 在第1阶段利用MMPC (max-min parents and children) 算法构建贝叶斯网络结构的框架, 在第2阶段执行评分搜索确定网络结构的边以及边的方向。

参数学习


R语言贝叶斯网络快速介绍


贝叶斯网络

定义

贝叶斯网络(BNs)的定义是:

  • 一个网络结构,一个有向无环图 , 其中每个节点 对应于一个随机变量 ;
  • 一个全局概率分布 (带参数 ), 它可以根据图中存在的弧被分解成更小的局部概率分布。

网络结构的主要作用是通过图形分离来表达模型中各变量之间的条件独立性关系,从而指定全局分布的因子化。

每个局部分布都有自己的参数集 ; 而⋃ 要比 小得多,因为许多参数是固定的,因为它们所属的变量是独立的。

R实现了以下学习算法。

基于约束的:PC, GS, IAMB, MMPC, Hilton-PC

基于分数的:爬山算法、Tabu Search

配对的:ARACNE, Chow-Liu

混合:MMHC, RSMAX2

我们使用基于分数的学习算法,希尔算法。首先,我们将先为本教程生成简单的数据集。

在这个数据集中,'状态'与'元素'和'接受'列有关系。而'类型'与'颜色'列有关系。当你创建一个带有分类数据的数据框时,列应该是一个因子类型。否则,该数据框不能用于BN结构的创建。

接下来,我们将创建学习结构。

我们可以在一个图中看到结构。

> plot(hc_simd)

点击标题查阅往期内容


R语言JAGS贝叶斯回归模型分析博士生延期毕业完成论文时间


01

02

03

04



在这个图中,状态、元素、接受、类型和颜色被称为节点。节点之间的方向用弧线描述,弧线是一个包含从元素到元素方向数据的矩阵。

如上弧线显示,在我们的数据中存在'类型'到'颜色',以及'状态'到'接受'和'元素'的关系。'类型'和'状态'是两个独立的组,它们之间不存在相互依赖关系。

接下来,我们将用数据来拟合模型。

simd_fitted

基于上述训练数据,我们可以进行条件概率查询。

我们检查 "Outlier "和 "Target "的状态概率。


该样本成为 "离群 "的概率为51%。

状态成为 "目标 "的概率是0%。

错颌畸形数据的贝叶斯网络分析

问题: 受第三类错牙合畸形影响的患者(以下牙弓突出为特征),其骨骼不平衡在生命早期就产生,在青春期和骨骼成熟前会变得更加明显。在单个III类患者中早期预测治疗的成功或失败,使其更容易矫正,但仅从少量的形态决定因素中预测是很难做到的。原因是III类错颌畸形很少是单一颅面部件异常的结果,所以单个的临床和放射学测量值可能不如测量值本身的相互作用具有指示性。

任务:

  1. 我们学习一个BN,并使用它来确定和可视化在成长和治疗过程中各种III类错位颌面特征之间的相互作用。
  2. 我们通过验证一些普遍接受的关于这些骨骼不平衡演变的假说来检验其一致性。
  3. 我们表明,与接受快速上颌扩张和面罩治疗的正畸患者相比,未经治疗的受试者形成了不同的III类颅面生长模式。
  4. 在接受治疗的患者中,CoA段(上颌骨长度)和ANB角(上颌骨与下颌骨的前后关系)似乎是接受治疗的主要影响的骨骼亚空间。

数据

我们将使用的数据集包含143名患者,在T1和T2年龄段有两组测量数据(以年为单位),用于以下变量。

  • 治疗:未经治疗(NT),治疗后效果不好(TB),治疗后效果好(TG)。
  • 生长:一个二元变量,数值为好或坏。
  • ANB:唐氏点A和B之间的角度(度)。
  • IMPA:门牙-下颌平面角(度)。
  • PPPM:腭平面-下颌平面的角度(度)。
  • CoA:上颌骨从髁状突到唐氏点A的总长度(mm)。
  • GoPg:下颌体从齿龈到齿龈的长度(mm)。
  • CoGo:下颌骨的长度,从髁状突到齿状突(mm)。

所有的测量都是通过X射线扫描得出的,使用一套参考点建立的图,如以下。

> str(data)

预处理和探索性数据分析

首先,我们创建一个数据框架,其中包括所有变量的差异以及增长和治疗。

生长和治疗变量带有关于病人预后的冗余信息,这一点从TB和TG之间生长良好的病人比例的差异中可以看出。

为了避免在模型中包括这两个变量所导致的混杂,我们将治疗重新编码为一个二元变量,0表示NT,1表示TB或TG。同样地,我们对成长进行重新编码,0表示坏,1表示好。

由于我们将使用高斯BN进行分析,检查这些变量是否是正态分布;从下面的图来看,似乎并非所有的变量都是如此。

+   hist(x, prob = TRUE )
+   lines(density(x), lwd = 2 )

这些变量是通过线性关系联系起来的吗?其中一些是,但不是全部。

> pairs(diff[, setdiff(names(diff)

最后,我们可以看看这些变量是否以任何方式聚在一起,因为聚在一起的变量更有可能在BN中发生联系。

> heatmap(rho)


课程视频|R语言bnlearn包:贝叶斯网络的构造及参数学习的原理和实例(中):https://developer.aliyun.com/article/1496663

相关文章
|
4月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
4月前
|
监控 负载均衡 安全
WebSocket网络编程深度实践:从协议原理到生产级应用
蒋星熠Jaxonic,技术宇宙中的星际旅人,以代码为舟、算法为帆,探索实时通信的无限可能。本文深入解析WebSocket协议原理、工程实践与架构设计,涵盖握手机制、心跳保活、集群部署、安全防护等核心内容,结合代码示例与架构图,助你构建稳定高效的实时应用,在二进制星河中谱写极客诗篇。
WebSocket网络编程深度实践:从协议原理到生产级应用
|
5月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
533 11
|
5月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
5月前
|
机器学习/深度学习 算法 搜索推荐
从零开始构建图注意力网络:GAT算法原理与数值实现详解
本文详细解析了图注意力网络(GAT)的算法原理和实现过程。GAT通过引入注意力机制解决了图卷积网络(GCN)中所有邻居节点贡献相等的局限性,让模型能够自动学习不同邻居的重要性权重。
983 0
从零开始构建图注意力网络:GAT算法原理与数值实现详解
|
5月前
|
安全 测试技术 虚拟化
VMware-三种网络模式原理
本文介绍了虚拟机三种常见网络模式(桥接模式、NAT模式、仅主机模式)的工作原理与适用场景。桥接模式让虚拟机如同独立设备接入局域网;NAT模式共享主机IP,适合大多数WiFi环境;仅主机模式则构建封闭的内部网络,适用于测试环境。内容简明易懂,便于理解不同模式的优缺点与应用场景。
761 0
|
7月前
|
机器学习/深度学习 人工智能 PyTorch
零基础入门CNN:聚AI卷积神经网络核心原理与工业级实战指南
卷积神经网络(CNN)通过局部感知和权值共享两大特性,成为计算机视觉的核心技术。本文详解CNN的卷积操作、架构设计、超参数调优及感受野计算,结合代码示例展示其在图像分类、目标检测等领域的应用价值。
417 7
|
8月前
|
安全 Java 程序员
分析Muduo网络库源码中的TcpServer组件工作原理
简言之,TcpServer 在 Muduo 中的角色,就是一位终极交通指挥员,它利用现代计算机网络的魔法,确保数据如同车辆一般,在信息高速公路上自由、安全、高效地流动。
106 0
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
11月前
|
数据采集 机器学习/深度学习 数据可视化
探索大数据分析的无限可能:R语言的应用与实践
探索大数据分析的无限可能:R语言的应用与实践
432 9