Hi there, I think I may have found a bug in the class hmm.DiscreteHiddenMarkovModel. The repro is below. It probably has something to do with one emission value being much more common than the others, but that shouldn't be invalid from my understanding of HMMs.
I am running Sage Version 6.2 on Linux (CentOS). I built it from source yesterday. I am a sage newbie! Why am I reporting the bug here? Because the "report a problem" link in the sage notebook points here: http://ask.sagemath.org/questions/ but I cannot post there because of being a new user (karma < 10) That page says to use this list instead. :) *repro:* print version() # here are two emisison sequences. each observable has 4 possible values: 0-3. # 1 is much more common then 0,2,3 obviously sequences = [ [1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 3, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 3, 3, 2, 3, 1, 3, 1, 3, 1, 3, 3, 3, 1, 1, 3, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1]] transitions = [[0.2, 0.8], [0.2, 0.8]] pi = [.4, .6] b = [[.1, .7, .1, .1], [.1, .7, .1, .1]] model = hmm.DiscreteHiddenMarkovModel(A=transitions, B=b, pi=pi, emission_symbols=None, normalize=True) print 'initial state for hmm:\n', model # training on the first sequence goes ok. # but after the second sequence, all elements of the transition, emission, and pi matrices are NaN. for i, seq in enumerate(sequences): print '\nbaum_welch on sequence ', i model.baum_welch(obs=seq, max_iter=1000) print model *And here is the output. see the many NaN in the final model* Sage Version 6.2, Release Date: 2014-05-06 initial state for hmm: Discrete Hidden Markov Model with 2 States and 4 Emissions Transition matrix: [0.2 0.8] [0.2 0.8] Emission matrix: [0.1 0.7 0.1 0.1] [0.1 0.7 0.1 0.1] Initial probabilities: [0.4000, 0.6000] baum_welch on sequence 0 (-18.660162393780404, 128) Discrete Hidden Markov Model with 2 States and 4 Emissions Transition matrix: [0.195469702114 0.804530297886] [0.197500250574 0.802499749426] Emission matrix: [0.000195677912721 0.999217288349 0.0 0.000587033738163] [ 0.0136321925931 0.945471229628 0.0 0.0408965777794] Initial probabilities: [0.9812, 0.0188] baum_welch on sequence 1 (nan, 1000) Discrete Hidden Markov Model with 2 States and 4 Emissions Transition matrix: [NaN NaN] [NaN NaN] Emission matrix: [NaN NaN NaN NaN] [NaN NaN NaN NaN] Initial probabilities: [nan, nan] -- You received this message because you are subscribed to the Google Groups "sage-support" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.
