def CreateDynDiscBN(vertices, edges, initialVdata, bnV_data): #Creates adn returns Dynamic Discrete BN d = DynDiscBayesianNetwork() d.V = vertices d.E = edges d.initial_Vdata = initialVdata d.twotbn_Vdata = bnV_data return d
def ConstructDynBN(num_graph, numvalues, A, ss): graph = conv.ian2g(num_graph) print(graph) V, E, initVdata = INITdata(graph, numvalues) tfVdata = gettfVdata(num_graph, numvalues, A) d = DynDiscBayesianNetwork() skel = GraphSkeleton() skel.V = V skel.E = E d.V = skel.V d.E = skel.E d.initial_Vdata = initVdata d.twotbn_Vdata = tfVdata print(d.V) print(d.E) print(d.initial_Vdata) print(d.twotbn_Vdata) data = sampleBN(d, ss) return data
result = learner.discrete_estimatebn(data) # output - toggle comment to see #print json.dumps(result.E, indent=2) #print json.dumps(result.Vdata, indent=2) # (13) ----------------------------------------------------------------------- # Forward sample on dynamic Bayesian networks # read input file path = "../tests/unittestdyndict.txt" f = open(path, 'r') g = eval(f.read()) # set up dynamic BN d = DynDiscBayesianNetwork() skel = GraphSkeleton() skel.V = g["V"] skel.E = g["E"] skel.toporder() d.V = skel.V d.E = skel.E d.initial_Vdata = g["initial_Vdata"] d.twotbn_Vdata = g["twotbn_Vdata"] # forward sample seq = d.randomsample(10) # output - toggle comment to see #print json.dumps(seq, indent=2)
import json from libpgm.nodedata import NodeData from libpgm.graphskeleton import GraphSkeleton from libpgm.dyndiscbayesiannetwork import DynDiscBayesianNetwork from inference.sensor_dbn_inference import SensorDbnInference network_file = open('test_bayesian_networks/sensor_dbn.txt', 'r') network_file_data = eval(network_file.read()) network_skeleton = GraphSkeleton() network_skeleton.V = network_file_data["V"] network_skeleton.E = network_file_data["E"] network = DynDiscBayesianNetwork() network.V = network_skeleton.V network.E = network_skeleton.E network.initial_Vdata = network_file_data["initial_Vdata"] network.twotbn_Vdata = network_file_data["twotbn_Vdata"] inference_engine = SensorDbnInference(network) print 'Initial belief: ', inference_engine.get_current_belief() inference_engine.filter('1') print 'Measurement = 1: ', inference_engine.get_current_belief() inference_engine.filter('0') print 'Measurement = 0: ', inference_engine.get_current_belief() inference_engine.filter('0') print 'Measurement = 0: ', inference_engine.get_current_belief()
means = numpy.array([[ 2.00755688e-04, 1.65181639e-01], [ 8.37884753e-01, 9.99778286e-01], [ 9.75317567e-01, 2.46051178e-02]]) # sensor network sensor_network_file = open('test_bayesian_networks/graph_sensor_dbn.txt', 'r') sensor_network_file_data = eval(sensor_network_file.read()) sensor_network_skeleton = GraphSkeleton() sensor_network_skeleton.V = sensor_network_file_data["V"] sensor_network_skeleton.E = sensor_network_file_data["E"] sensor_network = DynDiscBayesianNetwork() sensor_network.V = sensor_network_skeleton.V sensor_network.E = sensor_network_skeleton.E sensor_network.initial_Vdata = sensor_network_file_data["initial_Vdata"] sensor_network.twotbn_Vdata = sensor_network_file_data["twotbn_Vdata"] # observation_network observation_network_file = open('test_bayesian_networks/graph_transition_dbn.txt', 'r') observation_network_file_data = eval(observation_network_file.read()) observation_network_skeleton = GraphSkeleton() observation_network_skeleton.V = observation_network_file_data["V"] observation_network_skeleton.E = observation_network_file_data["E"] observation_network = DynDiscBayesianNetwork() observation_network.V = observation_network_skeleton.V observation_network.E = observation_network_skeleton.E observation_network.initial_Vdata = observation_network_file_data["initial_Vdata"] observation_network.twotbn_Vdata = observation_network_file_data["twotbn_Vdata"]