首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中的贝叶斯网络:构造和抽样

Python中的贝叶斯网络:构造和抽样
EN

Stack Overflow用户
提问于 2019-11-29 15:15:17
回答 5查看 2.1K关注 0票数 5

对于一个项目,我需要创建包含属性之间特定依赖关系的合成分类数据。这可以通过预先定义的贝叶斯网络的抽样来实现。在互联网上进行了一些探索之后,我发现Pomegranate是贝叶斯网络的一个很好的包--就我而言--从这样一个预先定义的贝叶斯网络中取样似乎是不可能的。例如,model.sample()引发了一个NotImplementedError (尽管解决方案这么说)。

有没有人知道是否存在一个库,它为贝叶斯网络的构建和抽样提供了一个良好的接口?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-12-02 14:47:49

我发现PyAgrum (https://agrum.gitlab.io/pages/pyagrum.html)完成了这项工作。它既可用于通过BayesNet()类创建贝叶斯网络,也可用于使用来自BNDatabaseGenerator() 班级.drawSamples()方法从这样的网络中进行示例。

票数 1
EN

Stack Overflow用户

发布于 2020-01-03 16:07:08

使用pyAgrum,您只需:

代码语言:javascript
复制
#import pyAgrum
import pyAgrum as gum

# create a BN
bn=gum.fastBN("A->B[3]<-C{yes|No}->D")
# specify some CPTs (randomly filled by fastBN)
bn.cpt("A").fillWith([0.3,0.7])

# and then generate a database
gum.generateCSV(bn,"sample.csv",1000,with_labels=True,random_order=False) 
# which returns the LL(database)

笔记本中的代码

有关使用http://webia.lip6.fr/~phw/aGrUM/docs/last/notebooks/的更多笔记本,请参见pyAgrum

免责声明:我是pyAgrum:-的作者之一

票数 4
EN

Stack Overflow用户

发布于 2020-07-20 11:50:02

另一个选择是帕格米,它是一个用于贝叶斯网络中学习(结构和参数)和推理(统计和因果)的Python库。

您可以生成前向和拒绝样本作为Pandas数据帧或numpy recarray。

下面的代码作为recarray从贝叶斯网络"diff ->品位<- intel“生成20个前向样本。

代码语言:javascript
复制
from pgmpy.models.BayesianModel import BayesianModel
from pgmpy.factors.discrete import TabularCPD
from pgmpy.sampling import BayesianModelSampling

student = BayesianModel([('diff', 'grade'), ('intel', 'grade')])

cpd_d = TabularCPD('diff', 2, [[0.6], [0.4]])
cpd_i = TabularCPD('intel', 2, [[0.7], [0.3]])
cpd_g = TabularCPD('grade', 3, [[0.3, 0.05, 0.9, 0.5], [0.4, 0.25, 0.08, 0.3], [0.3, 0.7, 0.02, 0.2]], ['intel', 'diff'], [2, 2])

student.add_cpds(cpd_d, cpd_i, cpd_g)
inference = BayesianModelSampling(student)
df_samples = inference.forward_sample(size=20, return_type='recarray')

print(df_samples)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59107319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档