C# での隠れマルコフ モデルの実装に関するこの優れた記事では、トレーニング データに基づいて 1 つのビット シーケンスを適切に分類しています。
複数の同時ビット シーケンスの分類をサポートするために、アルゴリズムを変更する方法、またはアルゴリズムを構築する方法 (複数の HMM ?)
例
1 つのストリームだけを分類する代わりに、次のようにします。
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] });
またはさらに良いことに、3 つのストリーム:
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] });
明らかに、トレーニング データも拡張されます。