Python石榴Bayes网络声明错误

问题描述

import csv
import pandas
from pomegranate import *

csvFile = pandas.read_csv('data.csv')

layer1= DiscreteDistribution({0: 1./3,0.5: 1./3,1.0: 1./3})
layer2 = DiscreteDistribution({0: 1./5,0.25: 1./3,0.5: 1./5,0.75: 1./5,1.0: 1./5})

node1 = Node(layer1,name="node1")
node2 = Node(layer1,name="node2")
node3 = Node(layer1,name="node3")
node4 = Node(layer2,name="node4")
node5 = Node(layer2,name="node5")
node6 = Node(layer2,name="node6")



model = BayesianNetwork("Bayes Net")
model.add_states(node1,node2,node3,node4,node5,node6)
model.add_edge(node1,node4)
model.add_edge(node1,node5)
model.add_edge(node1,node6)

model.add_edge(node2,node4)
model.add_edge(node2,node5)
model.add_edge(node2,node6)

model.add_edge(node3,node4)
model.add_edge(node3,node5)
model.add_edge(node3,node6)


model.bake()
model.fit(csvFile)

print(model.predict([[0,1,0.5,None,None]]))

我正在尝试使用石榴训练贝叶斯网。网络有两层,三个节点的输入层和三个节点的输出层。每个第一层节点连接到第二层节点。运行此代码时出现以下错误:

  File "pomegranate\BayesianNetwork.pyx",line 525,in pomegranate.BayesianNetwork.BayesianNetwork.predict
  File "pomegranate\BayesianNetwork.pyx",line 621,in pomegranate.BayesianNetwork.BayesianNetwork.predict_proba
  File "pomegranate\BayesianNetwork.pyx",line 616,in pomegranate.BayesianNetwork.BayesianNetwork.predict_proba
  File "pomegranate\FactorGraph.pyx",line 325,in pomegranate.FactorGraph.FactorGraph.predict_proba
  File "pomegranate\distributions\DiscreteDistribution.pyx",line 95,in pomegranate.distributions.DiscreteDistribution.DiscreteDistribution.__mul__
AssertionError

是什么原因造成的?为什么模型无法预测?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...