def train_hmm_and_keep_track_of_log_likelihood(hmm, obs, n_iter=1, **kwargs): hmm.fit(obs, n_iter=1, **kwargs) loglikelihoods = [] for n in xrange(n_iter): hmm.fit(obs, n_iter=1, init_params='', **kwargs) loglikelihoods.append(sum(hmm.score(x) for x in obs)) return loglikelihoods
def test_1(): # creates a 4-state HMM on the ALA2 data. Nothing fancy, just makes # sure the code runs without erroring out dataset = AlanineDipeptide().get() trajectories = dataset.trajectories topology = trajectories[0].topology indices = topology.select('symbol C or symbol O or symbol N') featurizer = SuperposeFeaturizer(indices, trajectories[0][0]) sequences = featurizer.transform(trajectories) hmm = GaussianHMM(n_states=4, n_init=3) hmm.fit(sequences) assert len(hmm.timescales_ == 3) assert np.any(hmm.timescales_ > 50)