Question: import networkx as nx import matplotlib.pyplot as plt from pgmpy . models import BayesianNetwork from pgmpy . factors.discrete import TabularCPD import numpy as np def
import networkx as nx
import matplotlib.pyplot as plt
from pgmpymodels import BayesianNetwork
from pgmpyfactors.discrete import TabularCPD
import numpy as np
def constructbayesiannetwork:
# Define Bayesian network structure
bayesiannetwork BayesianNetworkRain 'Maintenance'Rain 'Train'Maintenance 'Train'Train 'Appointment'
# Define Conditional Probability Distributions
cpdrain TabularCPDvariable'Rain', variablecard values
cpdmaintenance TabularCPDvariable'Maintenance', variablecard values evidenceRain evidencecard
cpdtrain TabularCPDvariable'Train', variablecard values evidenceRain 'Maintenance' evidencecard
cpdappointment TabularCPDvariable'Appointment', variablecard values evidenceTrain evidencecard
# Add CPDs to the network
bayesiannetwork.addcpdscpdrain, cpdmaintenance, cpdtrain, cpdappointment
return bayesiannetwork
def visualizebayesiannetworkbayesiannetwork:
# Visualize the Bayesian network
nxbayesiannetwork bayesiannetwork.tonx
pos nxspringlayoutnxbayesiannetwork
nxdrawnxbayesiannetwork, pos, withlabelsTrue, arrowsize nodesize nodecolor"skyblue", fontsize fontweight"bold"
plttitleBayesian Network"
pltshow
def inferencebayesiannetwork, queries:
# Perform inference on the Bayesian network
for query in queries:
queryvariable query
evidence query
printfPqueryvariablejoinevidencekeys bayesiannetwork.getinferencequeryvariablesqueryvariable evidenceevidence
def markovchainsimulationinitialstate, transitionmatrix, steps:
# Simulate Markov chain
currentstate initialstate
for in rangesteps:
currentstate npdotcurrentstate, transitionmatrix
return currentstate
if namemain:
# Question : Construct and visualize the Bayesian network
bayesiannetwork constructbayesiannetwork
visualizebayesiannetworkbayesiannetwork
# Question : Perform inferences
queries RainMaintenanceRain: 'heavy'AppointmentRain: 'none', 'Maintenance': no
inferencebayesiannetwork, queries
# Question : Markov chain simulation
initialstate nparray
transitionmatrix nparray
steps
finalstate markovchainsimulationinitialstate, transitionmatrix, steps
printfProbability distribution of 'attend' and 'miss' ten days later: finalstate
currently getting ValueError: values must be of shape Got shape:
cpdmaintenance TabularCPDvariable'Maintenance', variablecard values evidenceRain evidencecard
How to fix?
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
