关于在R中使用多个观测值和mhsmm包进行训练

我想通过使用泊松观测值来训练一个新的隐马尔可夫模型,这是我唯一知道的信息。我正在使用R语言的mhsmm包。

首先让我困扰的是模型的初始化,在示例中是这样的:

J<-3initial <- 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包在R中的输入格式?这两行代码解决了问题:

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

其中data.df$sequences是包含所有观测序列的数组,N是包含每个序列的观测数量的数组。尽管如此,初始模型完全是随机的,但我猜这就是它的本意,因为它将被重新估计,对吗?


回答:

初始化问题不仅对隐马尔可夫模型和隐半马尔可夫模型很关键,对所有基于期望最大化算法形式的学习方法都很关键。EM算法在模型与数据的似然性方面收敛到局部最优,但这并不总是保证达到全局最优。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注