import math
from pomegranate import *
import pomegranate as pg
guest= pg.DiscreteDistribution({'A':1./3,'B':1./3,'C':1./3})
prize= pg.DiscreteDistribution({'A':1./3,'B':1./3,'C':1./3})
monty=pg.ConditionalProbabilityTable(
[['A','A','A',0.0],
['A','A','B',0.5],
['A','A','C',0.5],
['A','B','A',0.0],
['A','B','B',0.0],
['A','B','C',1.0],
['A','C','A',0.0],
['A','C','B',1.0],
['A','C','C',0.0],
['B','A','A',0.0],
['B','A','B',0.0],
['B','A','C',1.0],
['B','B','A',0.5],
['B','B','B',0.0],
['B','B','C',0.5],
['B','C','A',1.0],
['B','C','B',0.0],
['B','C','C',0.0],
['C','A','A',0.0],
['C','A','B',1.0],
['C','A','C',0.0],
['C','B','A',1.0],
['C','B','B',0.0],
['C','B','C',0.0],
['C','C','A',0.5],
['C','C','B',0.5],
['C','C','C',0.0]],[guest,prize])
s1=pg.State(guest,name="guest")
s2=pg.State(prize,name="prize")
s3=pg.State(monty,name="monty")
network=pg.BayesianNetwork("Monty Hall Problem")
network.add_states(s1,s2,s3)
network.add_edge(s1,s2)
network.add_edge(s1,s3)
network.bake()
beliefs=network.predict_proba({'guest':'A'})
beliefs=map(str,beliefs)
print("\n".join("{}\t{}".format(state.name,belief)for state,belief in zip(network.states,beliefs)))
beliefs=network.predict_proba({'guest':'A','monty':'B'})
print("\n".join("{}\t{}".format(state.name,belief)for state,belief in zip(network.states,beliefs)))
У меня ошибка:
Traceback (most recent call last):
File "Bayesian_network_monty.py", line 43, in <module>
beliefs=network.predict_proba({'guest':'A'})
File "pomegranate\BayesianNetwork.pyx", line 609, in pomegranate.BayesianNetwork.BayesianNetwork.predict_proba
File "pomegranate\FactorGraph.pyx", line 345, in pomegranate.FactorGraph.FactorGraph.predict_proba
File "pomegranate\distributions\JointProbabilityTable.pyx", line 188, in pomegranate.distributions.JointProbabilityTable.JointProbabilityTable.marginal
**AttributeError: 'NoneType' object has no attribute 'log_probability'**
Как мне решить эту проблему?