Я пытаюсь понять, как работает HMM, но мне кажется, что мне не хватает важной части информации, которую я не могу идентифицировать.Я хочу, чтобы он предсказал следующий «признак» / «символ» на основе заданной последовательности.
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);
Следующим символом для «114, 15, 0, 1, 0» должно быть 114, нопрогноз - 15. Я делаю что-то не так с топологией?Нужно ли определять что-то по-другому?
Заранее спасибо!