PyAgrum的一个例子

1 下载PyAgrum

pip install pyagrum

如果出现超时问题,搜索anaconda如何更改下载源,改为清华下载源。

2 构建贝叶斯网络

引入相关包

from pylab import *
import matplotlib.pyplot as plt
import os
import pyAgrum as gum

2.1 创建网络和名字

#给这个贝叶斯网络命名
bn=gum.BayesNet('WaterSprinkler')

2.2 添加节点

#添加单个节点
c=bn.add(gum.LabelizedVariable('c','cloudy ?',2))
#print(c)
#添加多个节点
s, r, w = [ bn.add(name, 2) for name in "srw" ] #bn.add(name, 2) === bn.add(gum.LabelizedVariable(name, name, 2))

L a b e l i z e d v a r i a b l e Labelized variable Labelizedvariable是标识变量,指变量的数值是有限的。2说明 c c c的值只有两种,是 b o o l e a n boolean boolean变量。

2.3 添加边

#添加单个边,前面父节点,后面子节点
bn.addArc(c,s)
#添加多个边
for link in [(c,r),(s,w),(r,w)]:
    bn.addArc(*link)
#print(bn)

2.4 快捷添加边

bn=gum.fastBN("c->r->w<-s<-c")
bn

3 构建条件概率表

3.1 父节点

#创建CPT
bn.cpt(c).fillWith([0.4,0.6])
bn.cpt("c").fillWith([0.5,0.5])

3.2 子节点

#创建第二层的CPT
bn.cpt("s").var_names#展示s里的变量名,有c和s两类
bn.cpt("s")[:]=[ [0.5,0.5],[0.9,0.1]]
print(bn.cpt("s")[1])
bn.cpt("s")[0,:]=0.5 # equivalent to [0.5,0.5]
bn.cpt("s")[1,:]=[0.9,0.1]
bn.cpt("r")[{
   
   'c':0}]=[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值