diff options
Diffstat (limited to 'sourcecodes/bnt-master/HMM/dhmm_logprob.m')
| -rw-r--r-- | sourcecodes/bnt-master/HMM/dhmm_logprob.m | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/sourcecodes/bnt-master/HMM/dhmm_logprob.m b/sourcecodes/bnt-master/HMM/dhmm_logprob.m new file mode 100644 index 00000000..f8afe835 --- /dev/null +++ b/sourcecodes/bnt-master/HMM/dhmm_logprob.m @@ -0,0 +1,22 @@ +function [loglik, errors] = dhmm_logprob(data, prior, transmat, obsmat) +% LOG_LIK_DHMM Compute the log-likelihood of a dataset using a discrete HMM +% [loglik, errors] = log_lik_dhmm(data, prior, transmat, obsmat) +% +% data{m} or data(m,:) is the m'th sequence +% errors is a list of the cases which received a loglik of -infinity + +if ~iscell(data) + data = num2cell(data, 2); +end +ncases = length(data); + +loglik = 0; +errors = []; +for m=1:ncases + obslik = multinomial_prob(data{m}, obsmat); + [alpha, beta, gamma, ll] = fwdback(prior, transmat, obslik, 'fwd_only', 1); + if ll==-inf + errors = [errors m]; + end + loglik = loglik + ll; +end |
