notev = [0, 1, 3, 4] currd = {'D': random.choice(bchoice), 'I': random.choice(bchoice), 'S': 0, 'G': random.choice(tchoice), 'L': random.choice(bchoice)} iterations = int(n/4) samplesgood = 0 samples = 0 for i in range(0, iterations): for ne in notev: # get markov blanket mb = model.get_markov_blanket(order[ne]) # get evidence of markov balnker evid = dict((var, currd[var]) for var in mb) # query que = infer.query([order[ne]], evidence=evid, show_progress=False) # random number ran = random.random() res = 0 # sort query result tmp = [(elem, ind) for ind, elem in enumerate(que.values)] tmp.sort(reverse=True) # understand new value for variabile acc = 0 for elem in tmp: acc += elem[0] if ran < acc:
def test_markov_blanet(self): G = BayesianModel([('x', 'y'), ('z', 'y'), ('y', 'w'), ('y', 'v'), ('u', 'w'), ('s', 'v'), ('w', 't'), ('w', 'm'), ('v', 'n'), ('v', 'q')]) self.assertEqual(set(G.get_markov_blanket('y')), set(['s', 'w', 'x', 'u', 'z', 'v']))