Эта отличная статья о реализации скрытой модели Маркова в C # делает хорошую работу по классификации однобитовой последовательности на основе обучающих данных.
Как изменить алгоритм или построить егоout (несколько HMM?) для поддержки классификации нескольких одновременных битовых последовательностей?
Пример
Вместо классификации только одного потока:
double t1 = hmm.Evaluate(new int[] { 0,1 }); // 0.49999423004045024
double t2 = hmm.Evaluate(new int[] { 0,1,1,1 }); // 0.11458685045803882
Скорее, классифицировать двойной битпоток:
double t1 = hmm.Evaluate(new int[] { [0, 0], [0, 1] });
double t2 = hmm.Evaluate(new int[] { [0, 0], [1, 1], [0, 1], [1, 1] });
Или, что еще лучше, три потока:
double t1 = hmm.Evaluate(new int[] { [0, 0, 1], [0, 0, 1] });
double t2 = hmm.Evaluate(new int[] { [0, 0, 1], [1, 1, 0], [0, 1, 1], [1, 1, 1] });
Очевидно, что данные обучения также будут расширены.