Пример #1
0
    def generate(self,T,keep=True):
        # TODO only works if there's no other data in the model
        assert len(self.states_list) == 0

        tempstates = states.collapsed_hdphsmm_states(
                T=T,model=self,beta=self.beta,alpha_0=self.alpha_0,
                obs=self.obs,dur=self.dur)

        used_states = defaultdict(lambda: 0)
        for state in tempstates.stateseq:
            used_states[state] += 1

        allobs = {}
        for state,count in used_states.items():
            self.obs.resample()
            allobs[state] = [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
Пример #2
0
 def add_data(self,data,stateseq=None):
     self.states_list.append(states.collapsed_hdphsmm_states(
         model=self,beta=self.beta,alpha_0=self.alpha_0,
         obs=self.obs,dur=self.dur,data=data,stateseq=stateseq))