使用HMM进行序列预测的Matlab方法

我目前正在学习murphyk's的隐马尔可夫模型工具箱。然而,我在确定模型系数和通过对数似然进行序列预测的算法方面遇到了问题。

我的场景:

我有飞行鸟类在三维空间中的轨迹,即其XYZ坐标,这些属于连续隐马尔可夫模型的范畴。我有200次飞行鸟类的观测数据,即500行的轨迹数据,我希望预测序列。我希望以20个数据点进行采样,即在10个点之后,我的第一个问题是,以下参数是否适合我的情况?

  O = 3;  %向量中的系数数量   T = 20; %序列中的向量数量   nex = 50; %序列数量   M = 2;  %混合数量   Q = 20; %状态数量 

我的第二个问题是,哪种算法适合序列预测?训练是否是必需的?


回答:

据我所知,我假设你在训练200个不同的类别(HMM),每个类别有500个训练样本(观测序列)。

O是向量的维度,看起来是正确的。

没有必要固定T,它取决于你拥有的观测序列。

M是状态的高斯混合模型(GMM)中的多元高斯分布(或混合)数量。更多的混合将更好地拟合你的数据,并提供更高的准确性,但会牺牲性能。选择一个合适的值。

N不需要等于T。对于最佳的状态数量N,你需要自己进行基准测试并查看结果:

确定隐马尔可夫模型中隐藏状态的数量

是的,你必须使用Baum-Welch算法训练你的类别, optionally preceded by something like the segmental k-means procedure。在那之后,你可以轻松地使用前向/后向概率或Viterbi概率进行孤立单元识别,只需选择概率最高的类别即可。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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