def _resample_X(): pis = model.pi(data) X = np.array([np.random.multinomial(N_max, pis[m]) for m in xrange(M)]) N = N_vec(X).astype(np.float) kappa = kappa_vec(X) data["X"] = X data["N"] = N data["kappa"] = kappa
def resample_psi(self): mu = self.theta_prior.mu Lmbda = np.linalg.inv(self.theta_prior.sigma) randvec = np.random.randn(self.D, self.T-1) for d, c in enumerate(self.doc_topic_counts): Lmbda_post = Lmbda + np.diag(self.omega[d]) h_post = Lmbda.dot(mu) + kappa_vec(c) L = np.linalg.cholesky(Lmbda_post) self.psi[d] = dpotrs(L, h_post) + solve_triangular(L, randvec[d])