hmmdecode
隠れマルコフ モデル事後状態確率
構文
PSTATES = hmmdecode(seq,TRANS,EMIS)
[PSTATES,logpseq] = hmmdecode(...)
[PSTATES,logpseq,FORWARD,BACKWARD,S] = hmmdecode(...)
hmmdecode(...,'Symbols',SYMBOLS)
説明
PSTATES = hmmdecode(seq,TRANS,EMIS)
は、隠れマルコフ モデルからシーケンス seq
の事後状態確率 PSTATES
を計算します。事後状態確率は、シンボルの観測シーケンス sym
が与えられた場合にステップ "i" で状態 "k" になる条件付き確率です。遷移確率行列 TRANS
と出力確率行列 EMIS
を基準にモデルを指定します。TRANS(i,j)
は、状態 i
から状態 j
への遷移の確率です。EMIS(k,seq)
は、seq
が状態 k
から出力される確率です。
PSTATES
は、seq
と同じ長さで、モデルの状態ごとに 1 行をもっている配列です。PSTATES
の (i, j) 番目の要素は、モデルが状態 i で j 番目のステップにあるときに系列 seq
が与えられる確率を示します。
メモ:
関数 hmmdecode
は、最初の出力の前に状態が 1 でステップが 0 のモデルから開始します。hmmdecode
は、モデルが状態 1 から始まるという事実に基づいて PSTATES
の確率を計算します。
[PSTATES,logpseq] = hmmdecode(...)
は、遷移行列 TRANS
と出力行列 EMIS
を与えて、系列 logpseq
の確率の対数である seq
を返します。
[PSTATES,logpseq,FORWARD,BACKWARD,S] = hmmdecode(...)
は、S
によってスケーリングされたシーケンスの前方および後方の確率を返します。
hmmdecode(...,'Symbols',SYMBOLS)
は、出力されるシンボルを指定します。SYMBOLS
は、シンボルの名前の数値配列、string 配列または cell 配列です。既定の設定のシンボルは、1
~ N
の整数です。ここで、N
は、可能な出力数です。
例
trans = [0.95,0.05; 0.10,0.90]; emis = [1/6 1/6 1/6 1/6 1/6 1/6; 1/10 1/10 1/10 1/10 1/10 1/2]; [seq,states] = hmmgenerate(100,trans,emis); pStates = hmmdecode(seq,trans,emis); [seq,states] = hmmgenerate(100,trans,emis,... 'Symbols',{'one','two','three','four','five','six'}) pStates = hmmdecode(seq,trans,emis,... 'Symbols',{'one','two','three','four','five','six'});
参考文献
[1] Durbin, R., S. Eddy, A. Krogh, and G. Mitchison. Biological Sequence Analysis. Cambridge, UK: Cambridge University Press, 1998.
バージョン履歴
R2006a より前に導入