def tryModel(self, model): ci = GraphCI(model.adg(), undirected=True, moralise=True) eci = GraphCI(model.adg().essential_graph(), undirected=True, moralise=True) self.same_graph(model.adg().moralise(), model.adg().essential_graph().moralise()) self.same_ci(ci, eci)
def tryModel(self, model): eg = model.adg().essential_graph() remodel = EssentialGraph(vertices=eg.vertices(), lines=eg.lines(), arrows=eg.arrows()).orient() self.same_graph(model.adg().essential_graph(), remodel.essential_graph()) self.same_ci(GraphCI(model.adg()), GraphCI(remodel))
def runTest(self): for i, cbn in enumerate(self.cbn): obs, a, b = frozenset(), frozenset('a'), frozenset('b') ci = {} ga = cbn.copy() ga.intervene({'a': frozenset([0])}) ga = ga.adg() gb = cbn.copy() gb.intervene({'b': frozenset([0])}) gb = gb.adg() gab = cbn.copy() gab.intervene({'a': frozenset([0]), 'b': frozenset([0])}) gab = gab.adg() ci[obs] = GraphCI(cbn.adg()) ci[a] = GraphCI(ga) ci[b] = GraphCI(gb) ci[a | b] = GraphCI(gab) self.go(obs, a, b, self.arr[i], ci)
def tryModel(self, model): model_do = CBN.from_bn(model.copy(copy_domain=True)) # perform every interventional query ci = {} for q in model_do.good_interventions(): # generate the model model_do = CBN.from_bn(model.copy(copy_domain=True)) model_do.intervene(q) ci[frozenset(q.keys())] = GraphCI(model_do.adg()) iic = InterventionalICPattern(ci) self.assertEquals(iic.lines(), []) self.assertEquals(iic.orient(), model.adg())
def tryModel(self, model): # perform every interventional query ci = {} for xs in powerset(model.variables()): # build the intervention q q = {} for x in xs: q[x] = frozenset([set(model.values(x)).pop()]) # generate the model model_do = CBN.from_bn(model.copy(copy_domain=True)) model_do.intervene(q) ci[frozenset(q.keys())] = GraphCI(model_do.adg()) iic = InterventionalICPattern(ci) self.assertEquals(iic.lines(), []) self.assertEquals(iic.orient(), model.adg())
def testAsia(self): from gPy.Examples import asia indep = GraphCI(asia.adg(), True, True).independences() for k in indep.keys(): print k, ':', indep[k]
def same_indep(self, g, undir, mor, indep): found_indep = GraphCI(g, undir, mor).independences() self.assertEqual(frozenset(found_indep.keys()), frozenset(indep.keys())) for k in found_indep.keys(): self.assertEqual(frozenset(found_indep[k]), frozenset(indep[k]))
def tryModel(self, model): ci = GraphCI(model.adg()) g = ICPattern(ci) self.same_graph(g, model.adg().essential_graph())
def tryModel(self, model): ci = GraphCI(model.adg()) g = ICPattern(ci, model.adg().topological_order()) self.same_graph(g, model.adg())
def tryModel(self, model): ci = GraphCI(model.adg(), undirected=True, moralise=True) g = ICPattern(ci) self.same_graph(g.moralise(), model.adg().essential_graph().moralise())