title: Why does this Hidden Markov Model make this prediction?
body: <p>I am trying to understand how HMM works, but I think I am missing some crucial part of information that I cannot identify. I want it to predict the next "feature"/"symbol" based on a given sequence.</p>
  
  <pre><code>        int[][] sequences =
          {
              new[] { 10001, 15, 1, 0, 0, 10002 },
              new[] { 10002, 0, 1, 0, 15, 10001 },
              new[] { 101, 15, 0, 0, 0, 101},
              new[] { 101, 0, 0, 0, 15, 101 },
              new[] { 114, 15, 0, 1, 0, 114 },
              new[] { 114, 0, 0, 1, 15, 114 },
              new[] { 10001, 15, 1, 0, 0, 10002 },
              new[] { 10002, 0, 1, 0, 15, 10001 },
          };
  
          var teacher = new BaumWelchLearning()
          {
              Topology = new Forward(6),
              Tolerance = 0.0001,
          };
  
          HiddenMarkovModel hmm = teacher.Learn(sequences);
  
          // Gives 15 instead of 114
          int[] prediction = hmm.Predict(observations: new[] { 114, 15, 0, 1, 0 }, next: 1); 
  </code></pre>
  
  <p>The next character for "114, 15, 0, 1, 0" should be 114, yet the prediction is 15. Am I doing something wrong with the topology? Do I need to define something differently?</p>
  
  <p>Thanks in advance!</p>