我想通过泊松观测来训练新的HMM模型,这是我唯一了解的内容。
我正在为R使用mhsmm软件包。

困扰我的第一件事是模型的初始化,在示例中是:

J<-3
initial <- rep(1/J,J)
P <- matrix(1/J, nrow = J, ncol = J)
b <- list(lambda=c(1,3,6))
model = hmmspec(init=initial, trans=P, parms.emission=b,dens.emission=dpois.hsmm)


就我而言,我没有排放分布参数的初始值,这就是我想要估计的值。怎么样?

其次:如果我只有观察结果,我该如何将其传递给

h1 = hmmfit(list_of_observations, model ,mstep=mstep.pois)


为了获得训练好的模型?
在示例中,list_of_observations包含状态向量,一个观测值和一个观测序列长度,通常通过模型仿真获得:

list_of_observations = simulate(model, N, rand.emis = rpois.hsmm)


编辑:发现这个旧问题的答案部分解决了我的问题:
MHSMM package in R-Input Format?
这两行达到了目的:

train <- list(x = data.df$sequences, N = N)
class(train) <- "hsmm.data"


其中data.df $ sequences是包含所有观察序列的数组,N是包含每个序列的观察计数的数组。
初始模型仍然是完全随机的,但是我想这就是它的原意,因为它将被重新估计,对吗?

最佳答案

初始化问题不仅对于HMM和HSMM都是至关重要的,而且对于所有基于期望最大化算法形式的学习方法也至关重要。 EM在模型和数据之间的似然性方面收敛于局部最优,但这并不总是保证达到全局最优。

关于r - 在R中使用多个观测值和MHSM包进行HMM训练,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30329148/

10-09 03:06