r - 边界处估计的概率是什么意思?使用 depmixS4 包的 R 中的隐马尔可夫模型

标签 r prediction hidden-markov-models viterbi activity-recognition

我是隐马尔可夫模型的新手,我目前正在尝试使用连续 HMM 来预测 R 中 UCI 人类事件识别数据集(由加速度计和陀螺仪值组成)的 6 个事件。我有训练数据和测试数据, 总共有 561 个特征。在阅读了几篇论文后,我制作了一个 6 状态 HMM 并使用我拥有的训练数据对其进行训练,假设状态代表一个要分类的事件。之后,我使用 viterbi 来预测 HMM 在应用于测试数据时最可能的序列。使用 HMM 的 depmixS4 包,我尝试输入这些代码:

hmm <- depmix(activity~1,nstates=6,data=train[,-562],family=multinomial("identity"))
fhmm <- fit(hmm)
hmm2 <- depmix(activity~1,nstates=6,data=test[,-562],family=multinomial("identity"))
hmm2 <- setpars(hmm2, getpars(fhmm))
viterbi(hmm2)

我惊讶地发现,当使用所有 561 个特征时,这些代码产生了 100% 的准确率(我使用 Jahmm 只获得了大约 80% 的准确率,但后来我无法使用它的所有 561 个特征,因为它挂起)。 我其实是在联系depmixS4的开发者,他确认代码没问题,还说,“注意下面的拟合模型其实是观察到的或者普通的 马尔可夫模型而不是隐马尔可夫模型,因为所有响应 概率是在边界处估计的。” 他所说的“在边界处估计响应概率”是什么意思?我尝试在网上搜索它的含义,但一无所获。

使用 viterbi 不就意味着它确实是一个隐马尔可夫模型吗?我做错了吗?

请注意,“viterbi()”函数在包中仍然是一个未发布的函数(开发人员好心地告诉我它,以便能够尝试我的想法)。

最佳答案

我会尽力解释。在马尔可夫模型中,状态与观察到的序列之间存在对应关系(一对一的对应关系)。在隐马尔可夫模型中没有对应关系,也有一个或多个隐藏状态,不能通过对应序列来判断系统的状态。

Viterbi 用于在 HMM 中找到状态的最可能序列。为什么包的作者使用维特比?我不确定,也许他只是想证明维特比可以用于可观察状态。

希望这对您有所帮助。

问候。

关于r - 边界处估计的概率是什么意思?使用 depmixS4 包的 R 中的隐马尔可夫模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22494860/

相关文章:

math - 如何在3D空间中找到移动目标的交点坐标?

java - 如何继续尝试查找播放同一首歌曲但压缩格式不同的音频文件?

r - 使用 R 中的多个观察和 mhsmm 包进行 Hmm 训练

r - 如何在 R 包命名空间文件中正确使用 useDynLib()

r - 按组计算连续天数

r - 如何解决R和Java中的异常 "eval failed, request status: error code: 127"?

MATLAB 的 hmmtrain 假定初始状态为 1

r - 从 TermDocumentMatrix 创建稀疏矩阵

r - 从 data.frames 列表列表创建数据框

android - 输入类型为 ="text"的 Android 4.0.3 上的 Phonegap 2.2.0 中没有预测文本