Main Content

hmmestimate

出力と状態からの隠れマルコフ モデルのパラメーター推定

構文

[TRANS,EMIS] = hmmestimate(seq,states)
hmmestimate(...,'Symbols',SYMBOLS)
hmmestimate(...,'Statenames',STATENAMES)
hmmestimate(...,'Pseudoemissions',PSEUDOE)
hmmestimate(...,'Pseudotransitions',PSEUDOTR)

説明

[TRANS,EMIS] = hmmestimate(seq,states) は、既知の状態 states を使用して、遷移の最尤推定値 TRANS、出力の最尤推定値 EMIS、シーケンスの隠れマルコフ モデルの確率 seq を計算します。

hmmestimate(...,'Symbols',SYMBOLS) は、出力されるシンボルを指定します。SYMBOLS は、シンボルの名前の数値配列、string 配列または cell 配列です。既定の設定のシンボルは、1 ~ N の整数です。ここで、N は可能な出力数です。

hmmestimate(...,'Statenames',STATENAMES) は、状態の名前を指定します。STATENAMES は、状態の名前の数値配列、string 配列または cell 配列です。既定の設定の状態名は、1 ~ M です。ここで、M は状態の数です。

hmmestimate(...,'Pseudoemissions',PSEUDOE) は、行列 PSEUDOE 内の出現頻度の出力値を指定します。この引数を使用すると、標本列で表されない可能性のある非常に低い確率の出力の確率推定がゼロになることを回避できます。PSEUDOE は、サイズが m 行 n 列の行列です。ここで、m は、隠れマルコフ モデル内の状態数、n は可能な出力数です。ik という出力が seq では発生しない場合、系列 seq におけるこのような出力の期待数の推定値を表す正の数値を PSEUDOE(i,k) に設定できます。

hmmestimate(...,'Pseudotransitions',PSEUDOTR) は、出現頻度の遷移値を指定します。この引数を使用すると、標本列で表されない可能性のある非常に低い確率の遷移の確率推定がゼロになることを回避できます。PSEUDOTR は、サイズが m 行 m 列の行列です。ここで、m は隠れマルコフ モデル内の状態数です。ij という遷移が states では発生しない場合、系列 states におけるこのような遷移の期待数の推定値を表す正の数値を PSEUDOTR(i,j) に設定できます。

Pseudotransitions と Pseudoemissions

特定の遷移または出力の確率が非常に低い場合、その遷移は列 states で、またその出力は列 seq でまったく発生しない可能性があります。いずれの場合も、アルゴリズムは、TRANS または EMIS 内のこの遷移または出力に対して確率 0 を返します。遷移が発生しない場合は、引数 'Pseudotransitions' および 'Pseudoemissions' で補正できます。これを簡単に行うには、PSEUDOE または PSEUDOTR の該当するエントリを 1 に設定します。たとえば、遷移 ijstates では発生しない場合、PSEUDOTR(i,j) = 1 に設定します。この設定により、TRANS(i,j) は正になります。states と同じ長さの系列における遷移 ij の期待数の推定値があり、seq で遷移 ij が実際に発生する数が予想より大幅に少ない場合、PSEUDOTR(i,j) に期待数を設定できます。この設定により、TRANS(i,j) の値が増加します。期待された頻度で状態で発生する遷移に対しては、PSEUDOTR の該当するエントリを 0 に設定します。この設定の場合、TRANS の該当するエントリは増加しません。

状態シーケンスが不明の場合、hmmtrain を使用するとモデル パラメーターを推定できます。

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(1000,trans,emis);
[estimateTR,estimateE] = hmmestimate(seq,states);

参考文献

[1] Durbin, R., S. Eddy, A. Krogh, and G. Mitchison. Biological Sequence Analysis. Cambridge, UK: Cambridge University Press, 1998.

バージョン履歴

R2006a より前に導入