def main(argv): if (len(sys.argv) == 2 and sys.argv[1].isdigit()): # one arguement passed num = int(sys.argv[1]) else: print "Incorrect Usage: ./couldy_likelihood.py <number>" exit(1) network = BayesianNetwork() # Define the Bayesian Network ## Add nodes to the network ## cloudy = network.add_node("cloudy") sprinkler = network.add_node("sprinkler") rain = network.add_node("rain") wetgrass = network.add_node(("wetgrass")) ## Add connections between nodes ## network.connect_nodes(cloudy.name, sprinkler.name) network.connect_nodes(cloudy.name, rain.name) network.connect_nodes(sprinkler.name, wetgrass.name) network.connect_nodes(rain.name, wetgrass.name) ## Add conditional probability to nodes ## network.init_probability_tables() # initialise the probability tables network.add_probability("cloudy", {'probability': 0.5}) network.add_probability("sprinkler", {'cloudy': 1, 'probability': 0.1}) network.add_probability("sprinkler", {'cloudy': 0, 'probability': 0.5}) network.add_probability("rain", {'cloudy': 1, 'probability': 0.8}) network.add_probability("rain", {'cloudy': 0, 'probability': 0.2}) network.add_probability("wetgrass", { 'sprinkler': 1, 'rain': 1, 'probability': 0.99 }) network.add_probability("wetgrass", { 'sprinkler': 0, 'rain': 0, 'probability': 0.0 }) network.add_probability("wetgrass", { 'sprinkler': 0, 'rain': 1, 'probability': 0.9 }) network.add_probability("wetgrass", { 'sprinkler': 1, 'rain': 0, 'probability': 0.9 }) ## Defining paramenters for likelihood weighting ## evidence = {"sprinkler": 1, "wetgrass": 1} outcome = {"cloudy": 1} run_likelihood(network, evidence, outcome, num)
def main(argv): if (len(sys.argv) == 2 and sys.argv[1].isdigit()): # one arguement passed num = int(sys.argv[1]) else: print "Incorrect Usage: ./couldy_likelihood.py <number>" exit(1) network = BayesianNetwork() # Define the Bayesian Network ## Add nodes to the network ## cloudy = network.add_node("cloudy") sprinkler = network.add_node("sprinkler") rain = network.add_node("rain") wetgrass = network.add_node(("wetgrass")) ## Add connections between nodes ## network.connect_nodes(cloudy.name,sprinkler.name) network.connect_nodes(cloudy.name,rain.name) network.connect_nodes(sprinkler.name,wetgrass.name) network.connect_nodes(rain.name,wetgrass.name) ## Add conditional probability to nodes ## network.init_probability_tables() # initialise the probability tables network.add_probability("cloudy",{'probability':0.5}) network.add_probability("sprinkler", {'cloudy':1,'probability':0.1}) network.add_probability("sprinkler", {'cloudy':0,'probability':0.5}) network.add_probability("rain", {'cloudy':1,'probability':0.8}) network.add_probability("rain", {'cloudy':0,'probability':0.2}) network.add_probability("wetgrass", {'sprinkler':1,'rain':1,'probability':0.99}) network.add_probability("wetgrass", {'sprinkler':0,'rain':0,'probability':0.0}) network.add_probability("wetgrass", {'sprinkler':0,'rain':1,'probability':0.9}) network.add_probability("wetgrass", {'sprinkler':1,'rain':0,'probability':0.9}) ## Defining paramenters for likelihood weighting ## evidence = {"sprinkler":1,"wetgrass":1} outcome = {"cloudy":1} run_likelihood(network,evidence, outcome, num)
#print network.get_nodes() cloudy = network.add_node("cloudy") sprinkler = network.add_node("sprinkler") rain = network.add_node("rain") wetgrass = network.add_node(("wetgrass")) #cyclea = network.add_node("cyclea") network.connect_nodes(cloudy.name,sprinkler.name) network.connect_nodes(cloudy.name,rain.name) network.connect_nodes(sprinkler.name,wetgrass.name) network.connect_nodes(rain.name,wetgrass.name) #network.connect_nodes(cyclea.name,wetgrass.name) network.init_probability_tables() network.add_probability("cloudy",{'probability':0.5}) network.add_probability("sprinkler", {'cloudy':1,'probability':0.1}) network.add_probability("sprinkler", {'cloudy':0,'probability':0.5}) network.add_probability("rain", {'cloudy':1,'probability':0.8}) network.add_probability("rain", {'cloudy':0,'probability':0.2}) network.add_probability("wetgrass", {'sprinkler':1,'rain':1,'probability':0.99}) network.add_probability("wetgrass", {'sprinkler':0,'rain':0,'probability':0.0}) network.add_probability("wetgrass", {'sprinkler':0,'rain':1,'probability':0.9}) network.add_probability("wetgrass", {'sprinkler':1,'rain':0,'probability':0.9}) print "Data Init: %s" %(str(network.check_all_tables_init()))
#print network.get_nodes() cloudy = network.add_node("cloudy") sprinkler = network.add_node("sprinkler") rain = network.add_node("rain") wetgrass = network.add_node(("wetgrass")) #cyclea = network.add_node("cyclea") network.connect_nodes(cloudy.name, sprinkler.name) network.connect_nodes(cloudy.name, rain.name) network.connect_nodes(sprinkler.name, wetgrass.name) network.connect_nodes(rain.name, wetgrass.name) #network.connect_nodes(cyclea.name,wetgrass.name) network.init_probability_tables() network.add_probability("cloudy", {'probability': 0.5}) network.add_probability("sprinkler", {'cloudy': 1, 'probability': 0.1}) network.add_probability("sprinkler", {'cloudy': 0, 'probability': 0.5}) network.add_probability("rain", {'cloudy': 1, 'probability': 0.8}) network.add_probability("rain", {'cloudy': 0, 'probability': 0.2}) network.add_probability("wetgrass", { 'sprinkler': 1, 'rain': 1, 'probability': 0.99 }) network.add_probability("wetgrass", {