pgmpy - 基于Python的因果与概率建模库



一、关于 pgmpy

1、项目概览

pgmpy 是一个用于 贝叶斯网络 及相关模型的因果与概率建模的Python库。它提供统一的API用于构建、学习和分析以下模型:

  • 贝叶斯网络
  • 动态贝叶斯网络
  • 有向无环图(DAGs)
  • 结构方程模型(SEMs)

通过整合概率推断和因果推断工具,pgmpy 使用户能够在预测分析和干预分析之间无缝切换。


2、相关链接资源


3、功能特性

功能描述
因果发现/结构学习从数据中学习模型结构,可选择性整合专家知识
因果验证评估因果结构与数据的兼容性
参数学习从观测数据中估计模型参数(如条件概率分布)
概率推断计算基于观测证据的后验分布
因果推断使用do-演算计算干预和反事实分布
数据模拟在指定证据或干预下生成合成数据

二、安装配置

# 通过PyPI安装
pip install pgmpy

# 通过conda安装
conda install conda-forge::pgmpy

三、使用示例

1、离散数据建模

from pgmpy.utils import get_example_model

# 加载离散贝叶斯网络并模拟数据
discrete_bn = get_example_model('alarm')
alarm_df = discrete_bn.simulate(n_samples=100)

# 从数据学习网络结构
from pgmpy.estimators import PC
dag = PC(data=alarm_df).estimate(ci_test='chi_square', return_type='dag')

# 学习模型参数
dag_fitted = dag.fit(alarm_df)
dag_fitted.get_cpds()

# 使用学习模型进行预测
evidence_df = alarm_df.drop(columns=['FIO2'], axis=1)
pred_FIO2 = dag_fitted.predict(evidence_df)

2、线性高斯数据建模

# 加载高斯贝叶斯网络并模拟数据
gaussian_bn = get_example_model('ecoli70')
ecoli_df = gaussian_bn.simulate(n_samples=100)

# 从数据学习网络结构
from pgmpy.estimators import PC
dag = PC(data=ecoli_df).estimate(ci_test='pearsonr', return_type='dag')

# 学习模型参数
from pgmpy.models import LinearGausianBayesianNetwork
gaussian_bn = LinearGausianBayesianNetwork(dag.edges())
dag_fitted = gaussian_bn.fit(ecoli_df)
dag_fitted.get_cpds()

# 使用学习模型进行预测
evidence_df = ecoli_df.drop(columns=['ftsJ'], axis=1)
pred_ftsJ = dag_fitted.predict(evidence_df)

伊织 xAI 2025-05-27(二)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EAI工程笔记

请我喝杯伯爵奶茶~!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值