hmmdecode
Hidden Markov model posterior state probabilities
Syntax
PSTATES = hmmdecode(seq,TRANS,EMIS)
[PSTATES,logpseq] = hmmdecode(...)
[PSTATES,logpseq,FORWARD,BACKWARD,S] = hmmdecode(...)
hmmdecode(...,'Symbols',SYMBOLS)
Description
PSTATES = hmmdecode(seq,TRANS,EMIS)
calculates
the posterior state probabilities, PSTATES
, of
the sequence seq
, from a hidden Markov model. The
posterior state probabilities are the conditional probabilities of
being at state k at step i,
given the observed sequence of symbols, sym
. You
specify the model by a transition probability matrix, TRANS
,
and an emissions probability matrix, EMIS
. TRANS(i,j)
is
the probability of transition from state i
to state j
. EMIS(k,seq)
is
the probability that symbol seq
is emitted from
state k
.
PSTATES
is an array with the same length
as seq
and one row for each state in the model.
The (i, j)th element of PSTATES
gives
the probability that the model is in state i at
the jth step, given the sequence seq
.
Note
The function hmmdecode
begins with the model
in state 1 at step 0, prior to the first emission. hmmdecode
computes
the probabilities in PSTATES
based on the fact
that the model begins in state 1.
[PSTATES,logpseq] = hmmdecode(...)
returns logpseq
,
the logarithm of the probability of sequence seq
,
given transition matrix TRANS
and emission matrix EMIS
.
[PSTATES,logpseq,FORWARD,BACKWARD,S] = hmmdecode(...)
returns
the forward and backward probabilities of the sequence scaled by S
.
hmmdecode(...,'Symbols',SYMBOLS)
specifies the symbols that are emitted.
SYMBOLS
can be a numeric array, a string array, or a cell array of
the names of the symbols. The default symbols are integers 1
through
N
, where N
is the number of possible emissions.
Examples
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'});
References
[1] Durbin, R., S. Eddy, A. Krogh, and G. Mitchison. Biological Sequence Analysis. Cambridge, UK: Cambridge University Press, 1998.
Version History
Introduced before R2006a