def test_slfit(self): sequences = io.load_sequences(self._train_filename) hmm = HMM.from_file(self._model_filename) learner = SLHMM(self._num_hidden, self._num_observ) learner.fit(sequences, verbose=True) for sequence in sequences: pprint("True probability: %f" % hmm.predict(sequence)) pprint("Infered probability: %f" % learner.predict(sequence))
def test_predict(self): sequences = io.load_sequences(self._train_filename) hmm = HMM.from_file(self._model_filename) for sequence in sequences: self.assertEqual(hmm.predict(sequence), hmm.predict(sequence), "HMM.prediction Error") sequences = [[0, 1], [1, 2, 3, 0], [0, 0, 0, 1]] for sequence in sequences: self.assertEqual(hmm.predict(sequence), hmm.predict(sequence), "HMM.prediction Error")
def test_predict(self): sequences = io.load_sequences(self._train_filename) hmm = HMM.from_file(self._model_filename) for sequence in sequences: self.assertEqual(hmm.predict(sequence), hmm.predict(sequence), "HMM.prediction Error") sequences = [[0,1], [1,2,3,0], [0,0,0,1]] for sequence in sequences: self.assertEqual(hmm.predict(sequence), hmm.predict(sequence), "HMM.prediction Error")
def test_decode(self): sequences = io.load_sequences(self._train_filename) hmm = HMM.from_file(self._model_filename) for sequence in sequences: decoded_sequence = hmm.decode(sequence) self.assertEqual(len(sequence), len(decoded_sequence), "HMM.decode Error") for i in xrange(len(sequence)): self.assertEqual(sequence[i], sequence[i], "HMM.decode Error") sequences = [[0, 1], [1, 2], [0, 1, 2, 0]] for sequence in sequences: decoded_sequence = hmm.decode(sequence) self.assertEqual(len(sequence), len(decoded_sequence), "HMM.decode Error") for i in xrange(len(sequence)): self.assertEqual(decoded_sequence[i], decoded_sequence[i], "HMM.decode Error")
def test_emfit(self): sequences = io.load_sequences(self._train_filename) hmm = HMM.from_file(self._model_filename) learner = EMHMM(self._num_hidden, self._num_observ) learner.fit(sequences, verbose=True, repeats=1) for sequence in sequences: pprint("True probability: %f" % hmm.predict(sequence)) pprint("Infered probability: %f" % learner.predict(sequence)) pprint("Learned parameter using EM algorithm:") pprint("Transition matrix: ") pprint(learner.transition_matrix) pprint("Observation matrix: ") pprint(learner.observation_matrix) pprint("Initial distribution: ") pprint(learner.initial_dist) pprint("*" * 50) pprint("True Transition matrix: ") pprint(hmm.transition_matrix) pprint("True Observation matrix: ") pprint(hmm.observation_matrix) pprint("True initial distribution: ") pprint(hmm.initial_dist)
def test_loading(self): sequences = io.load_sequences(self._train_filename) hmm = HMM.from_file(self._model_filename) for sequence in sequences: self.assertEqual(hmm.predict(sequence), hmm.predict(sequence), "Inferred probability is wrong")