def soft_em_e_step(self, instance, count=1): count, evidence = float(count), DataSet.evidence(instance) value = self.value(evidence=evidence, clear_data=False) pre = value / self.theta_sum self.marginals(evidence=evidence, clear_data=False, do_bottom_up=False) self._soft_em_accumulate(evidence, pre, count=count) return pre
def log_likelihood(self, dataset): ll = 0.0 for instance, count in dataset: evidence = DataSet.evidence(instance) pr = self.probability(evidence) ll += count * math.log(pr) return ll