Exemplo n.º 1
0
    def generate(self,T,keep=True):
        # TODO only works if there's no other data in the model; o/w need to add
        # existing data to obs resample. it should be an easy update.
        assert len(self.states_list) == 0

        tempstates = states.collapsed_stickyhdphmm_states(
                T=T,model=self,beta=self.beta,alpha_0=self.alpha_0,
                kappa=self.kappa,obs=self.obs)

        used_states = np.bincount(tempstates.stateseq)

        allobs = []
        for state, count in enumerate(used_states):
            self.obs.resample()
            allobs.append([self.obs.rvs(1) for itr in range(count)])

        obs = []
        for state in tempstates.stateseq:
            obs.append(allobs[state].pop())
        obs = np.concatenate(obs)

        if keep:
            tempstates.data = obs
            self.states_list.append(tempstates)

        return obs, tempstates.stateseq
Exemplo n.º 2
0
 def add_data(self,data):
     self.states_list.append(states.collapsed_stickyhdphmm_states(
         model=self,beta=self.beta,alpha_0=self.alpha_0,
         kappa=self.kappa,obs=self.obs,data=data))