# Also the terms Node, DiscreteDistribution, ConditionalProbabilityTable, distribution, BayesianNetwork(), add_edge, bake are not being recognised.
from pomegranate import \*
# Rain node has no parents
rain = Node(DiscreteDistribution({"none": 0.7,"light": 0.2,"heavy": 0.1}), name="rain")
# Track maintenance node is conditional on rain
maintenance = Node(ConditionalProbabilityTable(\[\["none", "yes", 0.4\],\["none", "no", 0.6\],\["light", "yes", 0.2\],\["light", "no", 0.8\],\["heavy", "yes", 0.1\],\["heavy", "no", 0.9\]\], \[rain.distribution\]), name="maintenance")
# Train node is conditional on rain and maintenance
train = Node(ConditionalProbabilityTable(\[\["none", "yes", "on time", 0.8\],\["none", "yes", "delayed", 0.2\],\["none", "no", "on time", 0.9\],\["none", "no", "delayed", 0.1\],\["light", "yes", "on time", 0.6\],
\["light", "yes", "delayed", 0.4\],\["light", "no", "on time", 0.7\],\["light", "no", "delayed", 0.3\],
\["heavy", "yes", "on time", 0.4\],\["heavy", "yes", "delayed", 0.6\],\["heavy", "no", "on time", 0.5\],\["heavy", "no", "delayed", 0.5\],\], \[rain.distribution, maintenance.distribution\]), name="train")
# Appointment node is conditional on train
appointment = Node(ConditionalProbabilityTable(\[\["on time", "attend", 0.9\],\["on time", "miss", 0.1\],\["delayed", "attend", 0.6\],\["delayed", "miss", 0.4\]\], \[train.distribution\]), name="appointment")
# Create a Bayesian Network and add states
model = BayesianNetwork()
model.add_states(rain, maintenance, train, appointment)
# Add edges connecting nodes
model.add_edge(rain, maintenance)
model.add_edge(rain, train)
model.add_edge(maintenance, train)
model.add_edge(train, appointment)
# Finalize model
model.bake()
This is a program from CS50 course. Please someone explain why it isn't running on my system.
Try
The classes Node, DiscreteDistribution, ConditionalProbabilityTable, and BayesianNetwork are imported correctly from the pomegranate module. Additionally, the
add_states()
andadd_edge()
methods are used to define the network structure.Please make sure you have the pomegranate library installed in your environment before running the code.