Hidden Markov model posterior state probabilities
PSTATES = hmmdecode(seq,TRANS,EMIS)
[PSTATES,logpseq] = hmmdecode(...)
[PSTATES,logpseq,FORWARD,BACKWARD,S] = hmmdecode(...)
hmmdecode(...,'Symbols',SYMBOLS)
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 |
[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 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.
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.