Matlab 预测下一状态的隐马尔可夫模型

Matlab 预测下一状态的隐马尔可夫模型,matlab,machine-learning,hidden-markov-models,Matlab,Machine Learning,Hidden Markov Models,我明白,嗯,但不是很好地训练它。在我的案例中,我不知道应该如何设置培训和测试。我要解释我的问题 我正在使用Foursquare签入数据集来建模HMM,以预测用户的下一个场馆类别(我假设它是正向算法) 首先,我将报告这些签入的区域划分为六边形网格。假设有200个六边形。这些六边形是我隐藏的状态。然后,我通过利用用户在时间上的十六进制访问顺序来计算这些十六进制单元的转移概率。转换矩阵为200x200 其次,我通过计算每个单元中每个类别的数量来计算发射概率。共有9个场馆类别。因此,发射矩阵为200x9

我明白,嗯,但不是很好地训练它。在我的案例中,我不知道应该如何设置培训和测试。我要解释我的问题

我正在使用Foursquare签入数据集来建模HMM,以预测用户的下一个场馆类别(我假设它是正向算法)

首先,我将报告这些签入的区域划分为六边形网格。假设有200个六边形。这些六边形是我隐藏的状态。然后,我通过利用用户在时间上的十六进制访问顺序来计算这些十六进制单元的转移概率。转换矩阵为200x200

其次,我通过计算每个单元中每个类别的数量来计算发射概率。共有9个场馆类别。因此,发射矩阵为200x9

第三,通过查看每个类别中签入的分布来计算开始概率

即:

states = ('hex1', 'hex2', ..., 'hex200')

observations = ('category1', 'category2', ..., 'category9')
到目前为止,一切都很好。然而,如果我知道某个用户以前所在的HEX和类别,我想预测该用户的下一个类别


我想训练我的模型,然后测试它,并根据模型显示我预测的准确性。为此,模型应该用什么样的序列进行训练?我不知道我如何预测下一个类别,更重要的是,我如何设置模型以实现期望最大化。任何帮助我的努力都将不胜感激。如果您想解释这些代码示例,可以用pseudo或MATLAB编写。另外,口头解释也可以。

通常在HMM中,你只有观察到的变量序列(而不是隐藏的)。如果您的数据包括网格位置(用户所在的位置),那么它听起来更像一个马尔可夫模型,而不是一个隐马尔可夫模型。你仍然可以训练HMM,但训练要简单得多,因为你知道每个点的隐藏状态,所以如果我没记错的话,不需要EM,只需要分类分布的最大似然估计,你已经计算过了。我想澄清一下情况。我有一套登机顺序s=r1r2…rt。所以问题是如果我们知道序列c=c1c2…ct-1的类别移动,是否有可能预测ct。出于这个原因,首先我需要从类别旅行和hext中找到该序列的十六进制旅行。然后,我可以通过观察这个十六进制中的主导类别来预测ct。本文在第3.2.1节中解释了我需要做的事情:但是,我不能完全理解它,一些帮助可能会很大。对于HMM分类问题,人们为每个类运行EM算法并为每个类构建HMM,但在我的例子中,我不知道如何在类中分割序列。我认为我需要将序列分割为训练和测试数据,然后使用训练集只训练一个HMM。最后,我将能够从这个HMM预测我的测试序列。我说的对吗?分类意味着预测一个标签到一个完整的序列,因此你可以为每个可能的标签训练一个HMM,并以最高的可能性预测标签。但是如果我理解正确的话,那不是你想要达到的。是的,这不是我的目标。那我该怎么办?也就是说,我如何在不遵循HMM分类步骤的情况下训练这些序列?我想我需要在某种程度上使用鲍姆·韦尔奇,但如何使用呢?通常在HMM中,你只有观察到的变量序列(而不是隐藏的)。如果您的数据包括网格位置(用户所在的位置),那么它听起来更像一个马尔可夫模型,而不是一个隐马尔可夫模型。你仍然可以训练HMM,但训练要简单得多,因为你知道每个点的隐藏状态,所以如果我没记错的话,不需要EM,只需要分类分布的最大似然估计,你已经计算过了。我想澄清一下情况。我有一套登机顺序s=r1r2…rt。所以问题是如果我们知道序列c=c1c2…ct-1的类别移动,是否有可能预测ct。出于这个原因,首先我需要从类别旅行和hext中找到该序列的十六进制旅行。然后,我可以通过观察这个十六进制中的主导类别来预测ct。本文在第3.2.1节中解释了我需要做的事情:但是,我不能完全理解它,一些帮助可能会很大。对于HMM分类问题,人们为每个类运行EM算法并为每个类构建HMM,但在我的例子中,我不知道如何在类中分割序列。我认为我需要将序列分割为训练和测试数据,然后使用训练集只训练一个HMM。最后,我将能够从这个HMM预测我的测试序列。我说的对吗?分类意味着预测一个标签到一个完整的序列,因此你可以为每个可能的标签训练一个HMM,并以最高的可能性预测标签。但是如果我理解正确的话,那不是你想要达到的。是的,这不是我的目标。那我该怎么办?也就是说,我如何在不遵循HMM分类步骤的情况下训练这些序列?我想我需要在某种程度上使用鲍姆·韦尔奇,但如何使用呢?