贝叶斯网络结构学习方法简介

2023-11-16

题目:贝叶斯网络结构学习方法简介

        贝叶斯网络(Bayesiannetwork, BN)结构学习就是从给定的数据集中学出贝叶斯网络结构,即各节点之间的依赖关系;只有确定了结构才能继续学得网络参数,即表示各节点之间依赖强弱的条件概率。对于普通人来说(非贝叶斯网络的专业研究人员,仅一般使用者),希望的是能够有那么一个函数,函数的输入是数据集,输出即为贝叶斯网络结构。目前确实有很多贝叶斯网络工具箱,但新人上手还是有不小的门坎,原因有二:一是工具箱文件众多,很多时候就根本找不到你想要的函数;二是即使找到了还要输入一堆参数,而这些参数该如何设置又感觉无从下手,这是因为基础理论懂的太少,还有就是只要函数出错就会一脸茫然,为啥啊?

       贝叶斯网络结构学习方法简介贝叶斯网络结构学习方法简介综上所述,尽管我们普通人并不需要从头编写贝叶斯网络的结构学习函数,但是了解一些有关贝叶斯网络结构学习的基础理论也还是需要的,哪怕仅仅是为了更好地使用工具箱现成的函数。以下主要综合了多篇学位论文的有关内容,若要了解更多可以拜读参考文献原文。


1、基于评分搜索的方法

       那么如何根据已有的数据集学得贝叶斯网络结构呢?一种最简单的想法就是遍历所有可能的结构,然后用某个标准去衡量各个结构,进而找出最好的结构。

       是的,这就是评分搜索的基本思想。你可以把所有可能的结构看为定义域,将衡量特定结构好坏的标准看为函数,寻找最好的结构的过程相当于在定义域上求函数的最优值,即这是一个最优化问题。但这里面有两个关键点:一是定义域一般几乎无穷大,不可能遍历,即确定合适的搜索策略;二是用什么样的衡量标准,即确定所谓的评分函数。


1.1、评分函数

        【朱明敏. 贝叶斯网络结构学习与推理研究[D]. 西安电子科技大学, 2013.】

评分函数主要分为两类,一类是贝叶斯评分函数,另一类是基于信息论的评分函数。


1.1.1、贝叶斯评分函数

       【胡春玲. 贝叶斯网络结构学习及其应用研究[D]. 合肥工业大学, 2011.】


上图中,所谓的拓扑结构G即为朝思暮想的贝叶斯网络结构,样本集D即为已有的数据集。贝叶斯评分函数主要包括K2评分、BD评分、BDe评分。几种评分函数的关系如下:

        【刘峰. 贝叶斯网络结构学习算法研究[D].北京邮电大学, 2007.】



        【胡春玲. 贝叶斯网络结构学习及其应用研究[D]. 合肥工业大学, 2011.】


        【朱明敏. 贝叶斯网络结构学习与推理研究[D]. 西安电子科技大学, 2013.】


以上仅简单列出了三篇学位论文中有关几种贝叶斯评分函数的描述,若需了解某具体评分函数,请根据原始文献仔细研究学习。


1.1.2、基于信息论的评分函数

        【朱明敏. 贝叶斯网络结构学习与推理研究[D]. 西安电子科技大学, 2013.】


        更多有关MDL准则、BIC评分函数、AIC评分函数的内容参见【周志华.机器学习[M]. 清华大学出版社,2016.】的7.5.2节(学习)。


1. 2、搜索策略

        【胡春玲. 贝叶斯网络结构学习及其应用研究[D]. 合肥工业大学, 2011.】


        有关K2算法实际采样的就是爬山法搜索,后面会单独谈;爬山法(Hill-Climbing, HC)、模拟退火(Simulated Annealing, SA)、演化算法(Evolutionary Algorithm,EA)均为一些通用的方法,尤其是EA是一大类算法,包括遗传算法(Genetic Algorithm, GA)、蚁群算法(Ant Colony Optimization,ACO)等等,抽样算法是一种特殊的搜索策略详见本文第4节,后面也会单独谈。

        下表列出了一些基于评分搜索的贝叶斯网络结构学习算法:

        【朱明敏. 贝叶斯网络结构学习与推理研究[D]. 西安电子科技大学, 2013.】

2、基于约束(依赖分析或条件独立性测试)的方法

        【李玮玮. 贝叶斯网络结构学习方法的研究[D]. 南京航空航天大学, 2008.】





3、基于评分搜索和基于约束相结合的混合方法

        【李玮玮. 贝叶斯网络结构学习方法的研究[D]. 南京航空航天大学, 2008.】


       MMHC是Max-Min Hill-Climbing首字母的简写。


4、基于随机抽样的方法

        随机抽样的代表是马尔可夫蒙特卡罗(Markov Chain Monte Carlo, MCMC)方法,MCMC的重要代表是Metropolis-Hastings(简称MH)。更多有关MCMC和MH的内容可以参见【周志华. 机器学习[M]. 清华大学出版社,2016.】的14.5.1节(MCMC采样),以及【BishopC M. Pattern Recognition and Machine Learning (Information Science andStatistics)[M]. Springer-Verlag New York, Inc. 2006.】的11.2节(MarkovChain Monte Carlo)。

        【胡春玲. 贝叶斯网络结构学习及其应用研究[D]. 合肥工业大学, 2011.】




.

5、总结

        本篇主要是罗列一些贝叶斯网络结构学习策略,每种策略均包括了多种具体的方法(或算法),若需要深入了解某个算法时可以查找原文献,再根据原文献的参考文献找到原始资料,因此本篇相当于一个速查表或者是备忘录,不要期望能从本篇当中得到太具体的信息。接下来会结合一些贝叶斯网络的工具箱函数具体讨论几种算法的实现以供不同需求使用。.


后记

        最近基于贝叶斯网络做一些事情,需要基于数据集学习贝叶斯网络的结构,然而搜索下载了一些贝叶斯网络工具箱后发现很难上手,而且网络上并没有多少入门的资料,因此就把自己学习的过程或者说是入门经验分享出来,希望能够降低贝叶斯网络结构学习的门坎。本系列文章仅为个人入门阶段所写,若有理解不当之处敬请谅解,也希望大家协手丰富这方面的入门技术资料^_^。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

贝叶斯网络结构学习方法简介 的相关文章

随机推荐

  • OceanBase能取代Oracle吗

    推荐两篇文章 1 http www ha97 com 5766 html 2 http www sohu com a 152030438 151779
  • Python3 juypterlab pyecharts 柱状图/条形图制作

    1 打开虚拟机 确保虚拟机中的mysql正常连接 2 数据准备 Navicat Premium正常连接虚拟机中的mysq 创建名为follow的数据库 再通过excel导入准备好的数据 3 Navicat Premium中查询评分9 0分以
  • 解析创客教育的实践进程

    算力已经成为数字时代的核心生产力 是拉动数字经济向前发展的新动能 对于AI算力的投入 也将加快人工智能这一重要的数字化技术与实体经济的融合 赋能传统产业转型升级 催生新产业新业务新模式 为我国数字经济做强做优做大做出应有的贡献 在孩子的学习
  • OpenHarmony鸿蒙系统源码编译

    学习资源 鸿蒙官网 https device harmonyos com cn home 开源代码仓库地址 https openharmony gitee com 源码获取 参考 https device harmonyos com cn
  • Unate function & Positive unate & Negtive unate

    Unate function Unateness gt Positive unate and negtive unate
  • python变量的引用赋值及深浅拷贝

    python变量的引用赋值及深浅拷贝 1 python的变量 1 1 可变数据类型 1 2 不可变数据类型 2 深浅拷贝 2 1 内存地址以及实际存储数据之间的关系 2 2 若拷贝对象是可变数据类型 2 3 若拷贝对象是不可变数据类型 1
  • MyBatis3入门

    这里对mybatis的入门介绍以官方最新MyBatis3 4 1为准 具体文档及jar包请访问 https github com mybatis mybatis 3 releases 以前经常都在使用mybatis 但通常都是和Spring
  • MFC 启用和禁用控件

    启用和禁用控件可以调用CWnd EnableWindow 函数 BOOL EnableWindow BOOL bEnable TRUE 判断控件是否可用可以调用 CWnd IsWindowEnable函数 BOOL IsWindowEnab
  • Oracle VM VirtualBOX下克隆虚拟机镜像

    Oracle VM VirtualBOX下克隆虚拟机镜像 Windows环境下在Oracle VM VirtualBOX下克隆虚拟机镜像 1 通过命令操作 VBoxManage exe clonevdi F mysqlvm mysqledi
  • 二叉树的深度优先遍历和广度优先遍历js代码实现

    a 树的深度优先搜索和广度优先搜索 其实没了解过的时候 看见树就头晕 之后去搜了下 发现也不是什么困难的事情 其实树的深度优先搜索指的是不按照层级的规律去便利 像前序便利 中序后序便利都是属于深度便利的方式 树的广度便利就是按照层级关系 一
  • js 解构赋值

    取对象里的code以及value值 对象结构 var data code 1 message Hello World 常规取值做法 var code data code var message data message 用解构就方便简洁许多
  • sqlserver 联表查询、子查询、窗口函数、聚合函数等概念与例子

    with cte as的用法 查询的一个有用工具 允许创建临时命名结果集 可在查询中多次引用相同的子查询结果 可以提高查询的可读性和维护性 WITH cte name column1 column2 AS 这里是子查询 SELECT col
  • 静态白盒测试-code review

    一 静态白盒测试概述 首先区分软件测试的几个术语 白盒测试 黑盒测试 静态测试 动态测试 白盒测试 也称为透明测试 clear box testing 白盒测试针对逻辑结构进行检查 它允许我们看到程序的内部结构 黑盒测试 black box
  • 图片重叠,转换

  • Unity射线检测失效原因(逐步完善)

    完整用法 1 确保被检测物体拥有 层的设置 public LayerMask m layerMask 别忘记给敌人设置层和在脚本中选择层 2 确保被检测物体拥有 collider且其厚度不为0
  • Unity缺少System.IO.Ports

    问题 我需要使用串口相关的类库 但是引用不到 怎么解决的 PlayerSetting 界面把 Api Compatibility Level 切换为 NET 4 x 然后就好了
  • python并发编程之多线程

    多线程 多线程的作用 也是用于提高程序的效率 多进程 1 核心是多道技术 把内存分成 几块 2 通过 本质上就是切换 加 保存状态 3 当程序 IO 操作较多 可以提高程序效率 多线程什么是多线程 程序的执行线路 相当于与一条流水线 其包含
  • 计算机物联网论文范文大全,精选物联网的毕业论文范文.doc

    精选物联网的毕业论文范文 基于单片机的嵌入式以太网控制终端设计摘要 基于单片机技术的以太网终端广泛应用在各个领域 本文基于建荣AX20XX PHY的解决方案 实现ARP请求 以及ping命令 同时 本文详细介绍以太网接口的硬件设计和通信电路
  • 数学建模之方差分析基础--单因素,双因素方差分析与matlab实现

    前言 由于方差分析的原理基本在所有概率论与数理统计的书中都可以找到 那么这里就直接以图片的形式呈现了 关于方差齐次性检验以后会补充 知识基础 假设检验 今天刚刚学了数据结构 发现自己以前写的数组的基础操作水平极低 真是惭愧 简介 方差分析
  • 贝叶斯网络结构学习方法简介

    题目 贝叶斯网络结构学习方法简介 贝叶斯网络 Bayesiannetwork BN 结构学习就是从给定的数据集中学出贝叶斯网络结构 即各节点之间的依赖关系 只有确定了结构才能继续学得网络参数 即表示各节点之间依赖强弱的条件概率 对于普通人来