def __init__(self, fd, *args, **kwargs): LidstoneProbDist.__init__(self, fd, 0.01, args[-1]) samples = fd.samples() self._probs = dict(zip([0]*len(samples), samples)) self._logprobs = dict(zip([0]*len(samples), samples)) for sample in samples: self._logprobs[sample] = LidstoneProbDist.logprob(self, sample) self._probs[sample] = LidstoneProbDist.prob(self, sample)
def logprob(self, sample): if sample not in self._logprobs: self._logprobs[sample] = LidstoneProbDist.logprob(self, sample) return self._logprobs.get(sample)