Пример #1
0
 def __init__(self, bn,burnin=1000):
     """
     @param bn: A causal Bayesian network from which samples are drawn.
     @type bn: L{CBN}
     @param burnin: The burn in for the L{GibbsSampler} used for generating
     interventional data.
     @type burnin: int
     """
     super(CausalWorld,self).__init__(domain=Domain.copy(bn),variables=bn.variables())
     self._pure_model = bn.copy(copy_domain=True)
     self._pure_sampler = ForwardSampler(self._pure_model)
     self._burnin = burnin
     self._data = None
     self._inter_sampler = {}
     self._inter_data = {}
Пример #2
0
    def tryModel(self, model):
        # generate some samples
        cf = []
        sampler = ForwardSampler(model)
        samples = sampler.samples(100)
        cf.append(CompactFactor(samples,domain=Domain()))
        icf = IncrementalCompactFactor(samples, domain=Domain())

        for i in xrange(10):
            samples = sampler.samples(100)
            cf.append(CompactFactor(samples,domain=Domain()))
            icf.update(samples)

            # see if the sum of the CPT Factors in cf match that of icf
            for child in model.variables():
                family = model.adg().parents(child) | set([child])
                a = icf.makeFactor(family)
                b = cf[0].makeFactor(family)
                for f in cf[1:]:
                    b += f.makeFactor(family)
                self.assert_(same_factor(a,b))