使用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

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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