最大最小爬山算法的一些总结

2023-11-11

据说MMHC是现行的比较成功的一种混合贝叶斯结构学习算法,其主要思想是:先建立一个贝叶斯网络的骨架,再通过贪心算法确定最终结构。那么要搞懂的是以下:

1.框架是如何建立的

2.贪心算法是怎么运行的

3.最大最小体现在哪里?

4.为什么会优于一般的算法?

通过MMHC算法的论文《The max-min hill-climbing Bayesiannetwork

structure learning algorithm》,对以上几个问题,总结一下:

1.贝叶斯框架是通过MMPC算法确定的,这是一种局部挖掘算法。第二步是通过贝叶斯评分,利用爬山搜索确定方位。

 

MMPC:


对以上算法的解释:以上是建立的贝叶斯网络框架,主要过程分两步走。

第一步:前向,填充目标变量T的父子节点表CPC,用最大最小启发式方法,最大最小的意思是,在建立CPC表格时,使得在给定CPC表时,待选节点与目标变量最小联系最大化,于是得到初步CPC表。

第二步,后向,在CPC中,给定其中的变量S,若目标变量T与CPC表中元素X是独立的,则去除X(证明非父子关系)。

 

建立了CPC表后,然后该算法是利用了爬山搜索算法,在缩小了范围的搜索空间里进行搜索。但是缺点是仍然有陷入局部最优的可能。对于此,论文《基于MMHC算法的贝叶斯网络结构学习算法研究》进行了优化,使用了模拟退火,随机重启以及禁忌搜索进行改进,发现效果有所提升。

MMHC的优点:由于是混合式学习方法,很显然,能够集两种典型算法的优点于一身(基于约束的方法,基于搜索评分的方法)。基于约束的方法的缺点是当面临大量的节点是,付出的运算代价很大。而搜索评分的缺点是搜索的空间也是巨大的。当两种方法融合在一起后,建立的基本的联系,然后缩小了搜索的范围,自然比以前的方法更好。问题来了:混合式搜索比较好,有没有其他的混合式方法?或者就在此算法上,是否能够进行进一步的改进,(除了《基于MMHC算法的贝叶斯网络结构学习算法研究》进行的改进)。

一般认为MMHC算法是一种比较成功的结构学习算法,那么在此基础上进行增量的方法呢?进行增量学习的算法,我记得有一篇文章就是提出的iMMHC算法,这个增量算法在下一篇文章中进行总结。

一些思考:其实一直以来都是在找一个合适的增量学习算法,如何减少时间运算,节约存储空间。但是增量学习肯定是基于一般的结构学习的,然后考虑的是新数据增加时如何进行学习。那么考虑哪些算法是可以进行拓展的,或者哪种拓展是最好的。即使有iMMHC,在它的基础上能否进行改进???或者,能否利用新的一些前沿的方法,进行改进和迁移,应用在贝叶斯网络学习上??

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

最大最小爬山算法的一些总结 的相关文章

  • Python编程之理解对象

    1 python中的函数和类均是对象 体现在以下几方面 1 都可以赋值给一个变量 2 可以添加到集合对象中 3 可以作为参数传递给函数 4 可以当作函数的返回值 如果一个函数没有return语句 则默认返回None 2 type class
  • 什么是用户token(令牌)-- 转

    在目前的互联网或者计算机网络技术中 经常会听到token或者 令牌 这个词 那有没有想过 token或者说令牌到底是什么东西 有什么作用 为什么token的中文翻译是 令牌 其实这个问题也困扰了我很长的时间 长久以来我都是从token的形式
  • 混合开发监听安卓手机物理返回键

    混合开发监听安卓手机物理返回键 在用h5做混合开发过程中由于有个考试考试页面 中途不能退出 退出要添加确认操作 所以需要监听手机的返回操作 不让用户直接通过返回键返回 目前了解到混合开发中有两种方式监听 方式一 监听popstate 用到的
  • 指针式仪表识别读数 Python(已开源数据集)

    目录 一 前言 二 使用方法 1 安装相关的库 2 运行 三 方法说明 MeterDetection类说明 类参数 主函数 self ImgCutCircle 截取表盘区域 滤除背景 self ContoursFilter 对轮廓进行筛选

随机推荐

  • linux下的shell 快捷键

    linux下的shell 快捷键 2011 05 24 14 06 51 转载 标签 杂谈 分类 linux Ctrl p重复上一次命令 Ctrl a跳到第一个字符前 Ctrl x同上但再按一次会从新回到原位置 Ctrl b前移一个字符不删
  • 深度探索C++对象模型(20)——函数语义学(4)——多继承第二基类对虚函数支持的影响、虚继承下的虚函数

    1 多继承第二基类对虚函数支持的影响 子类继承了几个父类 子类就有几个虚函数表 this指针调整的目的就是让对象指针正确的指向对象首地址 从而能正确的调用对象的成员函数或者说正确确定数据成员的存储位置 多重继承下 有几种情况 第二个或者后续
  • ubuntu设置共享文件夹与linux进行文件共享

    1 打开虚拟机设置 选项 共享文件夹 添加一个文件夹路径 这个路径是windows下 的路径 比如说E盘 可以在E盘里面新建一个 share文件夹 然后确定 2 在Linux目录下 cd mnt hgfs E share 就可以看到里面的文
  • NoSQL的概念

    NoSQL概述 发展历程 1 单机MySQL的年代 网站发展之初 网站的访问量基本不会太大 单个数据库完全足够 那个时候基本都是静态网页HTML服务器没有压力 数据量如果太大 一个机器放不下了 B Tree 索引也放不下了 访问量太大 一个
  • yum安装软件时报错libmysqlclient.so.18()(64bit)

    环境 CentOS 7 4 使用阿里yum的网络源 问题 使用yum安装软件时报错 2 postfix 2 10 1 6 el7 x86 64 has missing requires of libmysqlclient so 18 64b
  • PyQt5中为QTextEdit的某些字符单独设置大小和颜色

    QTextEdit支持富文本 因此您可以将css样式与html一起用于QTextEdit中的文本 可以使用不同的样式附加不同的富文本 为方便起见 只需创建一些格式化文本 并将相应的文本传递给python string的format方法来创建
  • [Linux安装软件详解系列]01 安装MySQL8.0

    目录 1 检查有没有安装MySQL 2 安装MySQL8 0 1 下载 rpm文件 2 上传rpm文件到服务器 3 安装rpm文件 4 查看安装好的包 5 安装MySQL 5 启动MySQL 3 本地登录 1 查看默认密码 2 本地登录My
  • 这注定是一场独一无二的旅行——周年纪念日 [form 2022 to 2023]

    啊哈 竟然已经一周年了 还记得自己写了两三篇博客以后 就停写了很久 很久 总是因为各种各样的事情拖沓 直到有一天CSDN轻轻敲醒了我沉睡的心灵 忽然意识到自己好久没写了 也让我去想自己的初衷 为何而写 Why 一直觉得内容创作是一个很酷的事
  • 华为OD机试 Python 查找人名

    描述 有一串由逗号分隔的人名 每个人名可能由一个或多个单词组成 请你设计一个方法 根据指定的前缀串 找出与前缀匹配的人名 前缀串的构造是由人名中每个单词的第一个字母组合而成 输入 一串用逗号分隔的人名 一个前缀串 输出 匹配前缀串的所有人名
  • 吴恩达机器学习之路---logistic regression

    logistic regression 一 Logistic 回归 利用matlib实现 基础版 1 logistic regression数学基础 1 1 此示例为二元分类 二元分类的最终预测结果h为 0 1 为获得此效果 使用sigmo
  • 02-----带宽分析-----码流、分辨率、帧率的概念及如何计算视频带宽

    相关文章 01 带宽分析 下载nmon分析软件 一 码流 分辨率 帧率的概念 1 码流 码流 Data Rate 是指视频文件在单位时间内使用的数据流量 也叫码率或码流率 是视频编码中画面质量控制中最重要的部分 一般我们用的单位是Kb s或
  • Java线程学习实例——采用同步锁,互斥锁与同步锁的区别,synchronized的使用方法

    栗子来源 https blog csdn net wenzhi20102321 article details 52524545 首先对java中同步锁与互斥锁进行区分 主要来源于知乎中的大佬总结如下 1 锁的概念 锁的目的就是避免多个线程
  • FTP服务器的文件模式属于,FTP服务器的文件模式属于

    FTP服务器的文件模式属于 内容精选 换一换 在SAP HANA系统中 Shared卷和Backup卷由SFS Turbo提供时 需要创建一个SFS Turbo 提供共享路径给SAP HANA节点 表1列出了弹性文件服务的常用功能 在使用弹
  • uc浏览器解析视频源码,不废话,直接源码

    package cn rs blog service jiexi import com jfinal kit HttpKit import org apache http client CookieStore import org apac
  • 计算时间复杂度--(简单版)

    步骤 1 找到执行次数最多的语句 2 语句执行语句的数量级 3 用O表示结果 计算时间复杂度的3个出发点 掌握这三个出发点 那么一向搞不懂的时间复杂度就可以迎刃而解啦 然后 1 用常数1取代运行时间中的所有加法常数 2 在修改后的运行次数函
  • Spark(火花)快速、通用的大数据处理引擎框架

    一 什么是Spark 火花 是一种快速 通用处理大数据分析的框架引擎 二 Spark的四大特性 1 快速 Spark内存上采用DAG 有向无环图 执行引擎非循环数据流和内存计算支持 内存上比MapReduce快速100倍 磁盘上快10倍左右
  • android surfaceflinger 老罗,「Android」SurfaceFlinger分析

    本篇针对surfaceFlinger模块进行分析 目录如下 1 SurfaceFlinger功能 1 1 BufferQueue原理 native libs gui模块 1 2 layer显示内存分配 native libs ui模块 1
  • 使用org.apache.tools.zip包操作文件

    import java io import org apache tools zip import java util Enumeration 功能 zip压缩 解压 支持中文文件名 说明 本程序通过使用Apache Ant里提供的zip工
  • pytorch中的torchvision.transforms模块详解

    torchvision transforms torchvision transforms是pytorch中的图像预处理包 包含了很多种对图像数据进行变换的函数 这些都是在我们进行图像数据读入步骤中必不可少的 data transforms
  • 最大最小爬山算法的一些总结

    据说MMHC是现行的比较成功的一种混合贝叶斯结构学习算法 其主要思想是 先建立一个贝叶斯网络的骨架 再通过贪心算法确定最终结构 那么要搞懂的是以下 1 框架是如何建立的 2 贪心算法是怎么运行的 3 最大最小体现在哪里 4 为什么会优于一般