def _posterior_hypparams(self,n,tot,normalizers,feasible):
if n == 0:
return n, self.alpha_0, self.r_probs, self.r_support
else:
r_probs = self.r_probs[feasible]
r_support = self.r_support[feasible]
log_marg_likelihoods = special.betaln(self.alpha_0 + tot - n*r_support,
self.beta_0 + r_support*n) \
- special.betaln(self.alpha_0, self.beta_0) \
+ normalizers
log_marg_probs = np.log(r_probs) + log_marg_likelihoods
log_marg_probs -= log_marg_probs.max()
marg_probs = np.exp(log_marg_probs)
return n, self.alpha_0 + tot, marg_probs, r_support
评论列表
文章目录