def _sample_forwards_log(trans_matrix_docnum, log_likelihoods): A = trans_matrix_docnum aBl = log_likelihoods T = aBl.shape[0] stateseq = np.empty(T,dtype=np.int32) nextstate_unsmoothed = trans_matrix_docnum for idx in xrange(T): logdomain = aBl[idx] logdomain[nextstate_unsmoothed == 0] = -np.inf if np.any(np.isfinite(logdomain)): stateseq[idx] = sample_discrete(nextstate_unsmoothed * np.exp(logdomain - np.amax(logdomain))) else: stateseq[idx] = sample_discrete(nextstate_unsmoothed) nextstate_unsmoothed = trans_matrix_docnum return stateseq
def _sample_forwards_log(trans_matrix_docnum, log_likelihoods): A = trans_matrix_docnum aBl = log_likelihoods T = aBl.shape[0] stateseq = np.empty(T, dtype=np.int32) nextstate_unsmoothed = trans_matrix_docnum for idx in xrange(T): logdomain = aBl[idx] logdomain[nextstate_unsmoothed == 0] = -np.inf if np.any(np.isfinite(logdomain)): stateseq[idx] = sample_discrete( nextstate_unsmoothed * np.exp(logdomain - np.amax(logdomain))) else: stateseq[idx] = sample_discrete(nextstate_unsmoothed) nextstate_unsmoothed = trans_matrix_docnum return stateseq
def generate_states(self): T = self.T doc_num = self.doc_num state_distn = self.trans_matrix[doc_num, :] stateseq = np.zeros(T, dtype=np.int32) for idx in xrange(T): stateseq[idx] = sample_discrete(state_distn) self.stateseq = stateseq return stateseq
def generate_states(self): T = self.T doc_num = self.doc_num state_distn = self.trans_matrix[doc_num, :] stateseq = np.zeros(T,dtype=np.int32) for idx in xrange(T): stateseq[idx] = sample_discrete(state_distn) self.stateseq = stateseq return stateseq
def rvs_given_less_than(self,x,num): pmf = self.pmf(np.arange(1,x)) return sample_discrete(pmf,num)+1