我正在做一个需要使用隐藏马尔可夫模型的项目。我下载了 Kevin Murphy 的工具箱。我有一些关于使用的问题。在工具箱网页中,他说 dhmm_em 和 dhmm_logprob 的第一个输入是符号序列数据。在他们的示例中,他们将行向量作为数据。因此,当我将符号序列作为行向量给出时,我得到了错误;
??? Error using ==> assert at 9
assertion violated:
Error in ==> fwdback at 105
assert(approxeq(sum(alpha(:,t)),1))
Error in ==> dhmm_logprob at 17
[alpha, beta, gamma, ll] = fwdback(prior,
transmat, obslik, 'fwd_only', 1);
Error in ==> mainCourseProject at 110
loglik(train_act) =
dhmm_logprob(orderedSymbols,
hmm{train_act}.prior,
hmm{train_act}.trans,
hmm{act}.emiss);
但是,在给出此错误之前,代码适用于某些符号向量。当我将数据作为列向量提供时,函数工作正常,没有错误。那么我到底为什么会收到这个错误呢?
你可能会说我不应该给出单个向量,而是向量集,我还尝试将我的特征向量收集在一个结构中并给出行向量,但是没有任何改变,我仍然得到断言错误。
顺便说一句,我的符号序列没有任何零,我所做的一切几乎与他们在示例中显示的一样,所以如果有人能帮助我,我将不胜感激。