0

定義が間違っている可能性があるので、そうである場合は修正してください。次の種類の行列からマルコフ モデルを生成する必要があります。

four    two "e"         
four    two "e"         
three   three   "e"         
one three   "e"         
zero    six one zero    "e" 
two two "e"         
two two "e"         
two two "e"         
two two "e"         
two two "e"         
four    zero    "e"         
two two "e"         
three   one three   "e"     
three   "e"             
four    one "e"         
three   one "e"         
two one one zero    two "e"
two five    "e"         
three   four    two "e"     
zero    five    "e"         
three   "e"             
three   three   "e"         
three   "e"             
one one "e"         
three   two "e"         
one one "e"         
three   two zero    zero    zero    "e"
three   three   "e"         
three   one "e"         
three   two "e"         

次のような出力が必要です: {"four":[{2:"two", 3:"one",2:"exit"},{...}],"three":[{.. .}]}

上記の数値は基本的に、特定の状態への遷移が発生する回数です..

これにはpythonを使用しています。

「何を試しましたか?」というよくある質問への回答: 「いくつかのアプローチを試しましたが、うまくいきませんでした。そのため、答えの 1 つが物事を少し明確にするのに役立つことを願っています」.

どうもありがとう。

編集、完全なマトリックスを表示するように更新。

4

2 に答える 2

1

遷移のマトリックス (これらは確率になります) を与えていませんが、基礎となるマルコフ モデルから生じる観察された一連の遷移を与えています。

これらの観測が無数にない限り、基礎となる遷移パラメーターを正確に再構築することはできません。ただし、オブザーバブルのシーケンスが最も可能性が高いように遷移を選択できます。あなたの質問が理解できたら、隠れマルコフモデルの解を調べてください。無料で入手できる python モジュール GHMM は、ここにあります。

于 2012-04-16T19:13:40.893 に答える
0

{"four":[{2:"two", 3:"one",2:"exit"},{...}],"three":[{...}]}ここにアイデアがあります: 作成しようとする(これは Python ではまったく合法的ではありません)代わりに、作成しようとします{"four":[{"two":2, "one":3, "exit":2},{...}],"three":[{...}]}(内部ディクショナリの順序の変更に注意してください)。

Iterate over the matrix, for each line:
  if the first word isn't in the big dictionary, add it.
  if the second word isn't in its sub-dictionary, add it, otherwise add 1 to its value.
于 2012-04-16T19:05:13.210 に答える