【PGMPY】 1. DAG基础结构

news2024/11/16 0:50:14

pgmpy

贝叶斯网络的纯python实现,
用途:

结构学习、
参数估计、
近似(基于采样)
精确推理
因果推理

在这里插入图片描述

安装

pip install pgmpy

conda install -c ankurankan pgmpy

conda install -c ankurankan pgmpy

文档

https://pgmpy.org/index.html

一、基础结构

1. DAG

图形中的每个节点都可以表示一个随机变量、因子或随机变量聚类。图中的边表示它们之间的依赖关系。

from pgmpy.base import DAG
G = DAG()

#添加点
'''add_node(node, weight=None, latent=False)'''
G.add_node(node='a')
'''add_nodes_from(nodes, weights=None, latent=False)'''
'''latent:无法直接观察到但可能对因果关系产生影响的未测量变量。'''
G.add_nodeslatent_from(nodes=['a', 'b'])
#添加边
'''add_edge(u, v, weight=None)'''
G.add_edge(u='a', v='b')
'''add_edges_from(ebunch, weights=None)'''
G.add_edges_from(ebunch=[('a', 'b'), ('b', 'c')]) #自动添加点中不存在的点

#查看节点,边
G.nodes()
NodeView(('Alice', 'Bob', 'Charles'))
G.edges()
OutEdgeView([('Alice', 'Bob')])

# check if node in graph
 'a' in G     
# number of nodes in graph  图中的节点数
len(G)  


#  遍历节点
'''active_trail_nodes(variables, observed=None, include_latents=False)'''
from pgmpy.base import DAG
G = DAG()
G.add_nodes_from(['A', 'B', 'C'])
G.add_edges_from([('A', 'B'),
                  ('E', 'B'),
                  ('B', 'D'),
                  ('D', 'C'),
                  ('D', 'F'),
                  ('D', 'H'),
                  ('D', 'G')])
G.active_trail_nodes(['A', 'B'], observed='G')

在这里插入图片描述
在这里插入图片描述

# 干预  去掉指向该节点的边
'''do(nodes, inplace=False)'''

在这里插入图片描述

返回给定节点的祖先图。祖先图仅包含节点中至少一个变量的祖先节点。
'''get_ancestral_graph(nodes)'''

在这里插入图片描述

# 返回节点的子节点列表
'''get_children(node)'''

在这里插入图片描述

# 查找不可直接到达的节点
get_immoralities()

在这里插入图片描述

# 独立性检验
from pgmpy.base import DAG
chain = DAG([('X', 'Y'), ('Y', 'Z')])
chain.get_independencies()
(X ⟂ Z | Y)
(Z ⟂ X | Y)

# 叶子节点get_leaves()

在这里插入图片描述

# 节点的父项、子节点和子节点的其他父项的集合。
'''get_markov_blanket(node) '''

在这里插入图片描述

# 返回节点的父级列表。如果图形中不存在节点,则引发错误。
'''get_parents(node)[source]'''

在这里插入图片描述

#返回随机生成的 DAG,其中包含n_nodes个边概率为edge_prob的节点数。
'''get_random(n_nodes=5, edge_prob=0.5, latents=False)'''

在这里插入图片描述

# 返回图形根的列表。
'''get_roots()'''

在这里插入图片描述

如果观察到观察到的开始节点和结束节点之间存在活动跟踪(即 d 连接),则返回 True'''is_dconnected(start, end, observed=None)'''

在这里插入图片描述

# Checks whether the given model is I-equivalent 相同的图结构不同的边方向
'''is_iequivalent(model)'''

from pgmpy.base import DAG
G = DAG()
G.add_edges_from([('V', 'W'), ('W', 'X'),
                  ('X', 'Y'), ('Z', 'Y')])
G1 = DAG()
G1.add_edges_from([('W', 'V'), ('X', 'W'),
                   ('X', 'Y'), ('Z', 'Y')])
G.is_iequivalent(G1)
True

# 返回包含每个变量的局部独立性的独立实例。
''' local_independencies(variables)'''

在这里插入图片描述

#查找开始和结束的最小 d 分隔集。
'''minimal_dseparator(start, end)'''

在这里插入图片描述

#删除 DAG 中的所有不可到达边为并创建一个图
'''moralize()'''

在这里插入图片描述

# 可视化
https://docs.daft-pgm.org/en/latest/

在这里插入图片描述
在这里插入图片描述

2. PDAG

用于表示 PDAG(也称为 CPDAG)的类。PDAG 是 DAG 的等效类,包含有向边和无向边。无向边在两个方向上使用两条边表示,即 X - Y 之间的无向边使用 X -> Y 和 X <- Y 表示。有环图用PDAG表示。

classpgmpy.base.PDAG(directed_ebunch=[], undirected_ebunch=[], latents=[])

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

C++多线程编程(包含c++20内容)

C多线程编程(包含c20内容) 文章目录 C多线程编程(包含c20内容)线程通过函数指针创建线程通过函数对象创建线程通过lambda创建线程通过成员函数创建线程线程本地存储取消线程自动join线程从线程获得结果 原子操作库原子操作原子智能指针原子引用使用原子类型等待原子变量 互斥互…

Java【Spring】项目创建、存储和获取 Bean 的基本方式

文章目录 前言一、创建 Spring 项目1, 创建 Maven 项目2, 添加 Spring 依赖3, 创建启动类 二、存储 Bean 的基本方式1, 创建 Bean2, 存储 Bean 三、获取 Bean 的基本方式1, 获取上下文对象2, 获取 Bean3, 使用 Bean 总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的…

tinkerCAD案例:18. Glow Circuit Assembly 发光电路组件

tinkerCAD案例&#xff1a;18. Glow Circuit Assembly 发光电路组件 In this tutorial, we’ll walk through how to use the Glow circuit assembly. 在本教程中&#xff0c;我们将演练如何使用 Glow 电路程序集。 Using the Glow circuit assembly, you’ll build a pengui…

使用Jetpack Glance创建Android Widget

使用Jetpack Glance创建Android Widget Jetpack Glance发布&#xff0c;让我们使用Google提供的Jetpack Glance创建一个联系人列表小部件。 https://developer.android.com/jetpack/compose/glance 什么是Glance&#xff1f; Jetpack Glance是一个使用Kotlin API创建小型、轻…

APP流量变现逻辑,流量变现收益如何最大化?

开发者首先通过买量的方式将用户引入APP中&#xff1b;用户在使用APP过程中的行为&#xff0c;诸如与游戏关卡的互动等&#xff0c;则不断地产生流量&#xff1b;最后&#xff0c;流量将成为“商品”&#xff0c;被运输至Facebook Audience Network或Google AdMob等平台进行售卖…

cmd命令查看电脑端口

操作是window系统的 其他系统原理类似 但也是有细微差别的 操作 netstat -na //135只是一个举例 netstat -ano | findstr 135//查看被占用端口对应的PID asklist | findstr 135//查看是哪个进程或者程序占用了端口指令 在Windows上&#xff1a; 使用以下命令查找占用指定…

Docker创建tomcat容器实例后无法访问(HTTP状态 404 - 未找到)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

python基础1——环境安装

文章目录 一、Windows安装二、Linux安装三、pycharm安装3.1 软件安装3.2 个性化设置3.3 基本使用3.3.1 定义变量3.3.2 查看数据类型3.3.3 运算符3.3.4 操作符3.3.5 转义符 一、Windows安装 1、下载软件安装包&#xff0c;官网 2、开始安装。 2.查看是否安装成功。 3.安装…

【从零开始学习JAVA | 第三十三篇】File类

目录 前言&#xff1a; File类&#xff1a; 构造方法&#xff1a; 常见成员方法&#xff1a; 总结&#xff1a; 前言&#xff1a; 本文我们将为大家介绍JAVA中一个比较使用的类&#xff1a;File类&#xff0c;他为我们提供了存储数据的功能&#xff0c;使得程序的数据不至…

Python(一)

要做到坚韧不拔&#xff0c;最要紧的是坚持到底。——陀思妥耶夫斯基 2023 6 14~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --根据你自己的操作系统下载对应的。 -- pyhton 文档 --交互方式 使用的工具 --如何启动工具 -- 交互式方式一般在数据分析中…

认识什么是架构

目录 ​编辑 一、架构是什么 1.1 系统与子系统 1.1.1 系统 1.1.1.1 关联 1.1.1.2 规则 1.1.1.3 能力 1.1.2 子系统 1.2 模块与组件 1.2.1 模块 1.2.2 组件 1.3 框架与架构 1.3.1 框架 1.3.2 架构 1.3.2.1 架构定义 1.3.2.2 架构组成 1.3.2.2.1 要素 1.3.2.2.2 结构 1.3.2…

YAML+PyYAML笔记 7 | PyYAML源码之yaml.compose_all(),yaml.load(),yaml.load_all()

7 | PyYAML源码之yaml.compose_all&#xff0c;yaml.load,yaml.load_all 1 yaml.compose_all()2 yaml.load()3 yaml.load_all() 1 yaml.compose_all() 源码&#xff1a; 作用&#xff1a;分析流中的所有YAML文档&#xff0c;并产生相应的表示树。解析&#xff1a; # -*- codi…

IDEA配置远程docker解释器及无编码提示/关联不到python依赖问题

文章目录 1. 修改docker默认配置以支持远程连接2. 配置docker远程解释器3 .IDE配置project SDK4. 本地代码与Linux目录映射5.运行配置 1. 修改docker默认配置以支持远程连接 vim /lib/systemd/system/docker.service,修改docker启动参数 #ExecStart/usr/bin/dockerd -H fd://…

后台管理系统中重定向业务功能的实现

实现 退出登录组件中获取到当前路由路径并且传递query参数给登录页面 // 组件内 const logout()>{// 获取当前路由路径const redirectroute.fullPathuseStore.logout(redirect) }// pinia/store仓库 async logout(redirect:string){... // 清空仓库业务router.push({name:…

机器人状态估计:robot_localization 功能包基本参数详解

机器人状态估计&#xff1a;robot_localization 功能包基本参数详解 前言功能包简介相关参数基本参数 前言 移动机器人的状态估计需要用到很多传感器&#xff0c;因为对单一的传感器来讲&#xff0c;都存在各自的优缺点&#xff0c;所以需要一种多传感器融合技术&#xff0c;将…

【业务功能篇56】SpringBoot 日志SLF4J Logback

3.5.1 日志框架分类与选择 3.5.1.1 日志框架的分类 日志门面 (日志抽象)日志实现JCL(Jakarta Commons Logging) SLF4J(Simple Logging Facade for Java)Jul(Java Util Logging) , Log4j , Log4j2 , Logback 记录型日志框架 Jul (Java Util Logging)&#xff1a;JDK中的日志…

山西电力市场日前价格预测【2023-07-29】

日前价格预测 预测明日&#xff08;2023-07-29&#xff09;山西电力市场全天平均日前电价为337.82元/MWh。其中&#xff0c;最高日前电价为355.66元/MWh&#xff0c;预计出现在09: 15。最低日前电价为314.90元/MWh&#xff0c;预计出现在24: 00。 价差方向预测 1&#xff1a;实…

MySQL基础语法(DDL、DQL、DML、DCL)

目录 SQL通用语法以及分类 SQL通用语法 SQL语句的分类 数据库/表/列的命名规则 DDL语句 DDL设计的数据类型 数据库操作 表操作&#xff08;必须先进入到数据库&#xff09; DQL语句 DQL的执行顺序 基本查询 SELECT 条件查询 WHERE 分组查询 GROUP BY 排序查询 OR…

formatter的用法,深拷贝, Object.assign 方法实战。

1. :formatter的用法 :formatter 接受一个函数作为参数&#xff0c;这个函数有三个参数&#xff1a;row&#xff0c;column 和 cellValue。row 是当前行的数据&#xff0c;column 是当前列的数据&#xff0c;cellValue 是当前单元格的值。 <el-table-column prop"SYS…

Spring Boot——Spring Boot启动原理

系列文章目录 Spring Boot启动原理 系列文章目录一、Spring Boot启动的宏观流程图二、Spring Boot启动流程2.1 初始化new SpringApplication2.1.1Spring Boot入口2.1.2初始化SpringApplication2.1.2.1判断当前应用程序类型2.1.2.2设置应用程序的所有初始化器(initializers)2.1.…