コード例 #1
0
 def _train(self, num_train_inst):
     '''
     Train a Hidden Markov Model with differnt learning algorithms
     '''
     num_train_inst = min(num_train_inst, self._training_data[0].shape[0])
     training_data = self._training_data[0][:num_train_inst]
     pprint("=" * 50)
     pprint("Training set length: %d" % num_train_inst)
     # Spectral learning algorithm
     start_time = time.time()
     self._sl_learner = SLHMM(self._num_hidden, self._num_observ)
     self._sl_learner.fit([training_data])
     end_time = time.time()
     pprint("Time used for Spectral Learner: %f" % (end_time - start_time))
     sl_time = end_time - start_time
     # Expectation Maximization algorithm
     #self._em_learners = []
     em_times = np.zeros(self._num_em_restarts, dtype=np.float)
     #for i in xrange(self._num_em_restarts):
     #self._em_learners.append(EMHMM(self._num_hidden, self._num_observ))
     #start_time = time.time()
     #self._em_learners[i].fit([training_data], max_iters=20, verbose=True)
     #end_time = time.time()
     #pprint("Time used for Expectation Maximization: %f" % (end_time - start_time))
     #em_times[i] = end_time - start_time
     return (sl_time, np.mean(em_times))
コード例 #2
0
 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))