Main Content

hmmgenerate

隠れマルコフ モデルの状態と出力

構文

[seq,states] = hmmgenerate(len,TRANS,EMIS)
hmmgenerate(...,'Symbols',SYMBOLS)
hmmgenerate(...,'Statenames',STATENAMES)

説明

[seq,states] = hmmgenerate(len,TRANS,EMIS)は、遷移確率行列TRANSおよび出力確率行列EMISによって指定された既知のマルコフ モデルを使用して、以下を生成します。

  • ランダムな出力シンボル系列seq

  • ランダムな状態系列states

seqstatesの長さは、いずれもlenです。TRANS(i,j)は、状態iから状態jまでの遷移確率です。EMIS(k,l)は、シンボルlが状態kから出力される確率です。

メモ:

関数hmmgenerateは、最初の出力の前の、ステップ 0 で状態 1 にあるモデルから開始します。モデルは、その後、確率 T1i1で状態 i1に遷移し、確率 Ei1k11で出力 ak1を生成します。hmmgenerateは、statesの最初のエントリとして i1を、seqの最初のエントリとして ak1をそれぞれ返します。

hmmgenerate(...,'Symbols',SYMBOLS)は、出力されるシンボルを指定します。SYMBOLSには,数値配列,弦配列,または文字ベクトルの细胞配列を指定できます。既定の設定のシンボルは、1Nの整数です。ここで、Nは、可能な出力数です。

hmmgenerate(...,'Statenames',STATENAMES)は、状態の名前を指定します。STATENAMESには,数値配列,弦配列,または文字ベクトルの细胞配列を指定できます。既定の設定の状態名は、1Mです。ここで、Mは、状態の数です。

モデルは、遷移確率がTRANSの最初の行にある状態 1 から常に開始するため、次の例の出力statesの最初のエントリは、確率 0.95 で 1 と確率 0.05 で 2 になります。

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) [seq,states] = hmmgenerate(100,trans,emis,... 'Symbols',{'one','two','three','four','five','six'},... 'Statenames',{'fair';'loaded'})

バージョン履歴

R2006a より前に導入