Ошибка утверждения сети Python Pomegranate 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, 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

Что вызывает это? Почему модель не может предсказать?

0 ответов

Другие вопросы по тегам