bnlearn库是专门用来学习贝叶斯网络的图形结构、参数学习、推理和抽样方法的python包。
Bnlearn 构建在pgmpy包的基础上。
贝叶斯网络的学习可以分解为两部分:
-
贝叶斯网络结构学习:
给定一组数据样本,估计变量之间的依赖关系以及对应的结构图; -
贝叶斯网络参数学习:
给定一组数据样本和捕获变量之间依赖关系的DAG,估计单个变量的(条件)概率分布。
bnlearn包的导入以及几种主要方法如下:
#导入bnlearn包
import bnlearn as bn
###结构学习
bn.structure_learning.fit()
###参数学习
bn.parameter_learning.fit()
##推理
bn.inference.fit()
##加载众所周知的例子来玩或者加载你自己的.bif文件
bn.import_DAG()
##比较两个贝叶斯网络图
bn.compare_networks()
##画图
bn.plot()
##转化为独热矩阵
bn.df2onehot()
bnlearn库还有以下功能:
推理
抽样
比较两个网络
加载bif文件
有向图到无向图的转换
我们准备数据如下:
import bnlearn as bn
import pandas as pd
df=pd.read_csv("C:\\Users\\18811\\Desktop\\work1.csv")
model=bn.structure_learning.fit(df)
G=bn.plot(model)
五行代码搞出贝叶斯网络结构: