Beispiel #1
0
    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
Beispiel #2
0
    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
Beispiel #3
0
    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
Beispiel #4
0
    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
Beispiel #5
0
 def rvs_given_less_than(self,x,num):
     pmf = self.pmf(np.arange(1,x))
     return sample_discrete(pmf,num)+1
Beispiel #6
0
 def rvs_given_less_than(self,x,num):
     pmf = self.pmf(np.arange(1,x))
     return sample_discrete(pmf,num)+1