如何使用python中的hmmlearn GMMHMM库拟合我的连续数据?

时间:2019-06-07 20:28:02

标签: python scikit-learn hidden-markov-models markov hmmlearn

我正在尝试使用顺序形式的连续数据集实施HMM学习/培训。我试图用高斯混合/ EM算法构建新的HMM训练,但是我遇到了一些问题,因此我切换到python中的hmmlearn库。

有关我的数据集的概述

例如,列表包含标准化的训练数据。

列表中的元素总数= 75

列表中的每个元素都是一个np数组。

列表中的数据是连续的车辆行驶数据。

'X_train = [[100*4], [100*4], [100*4], [100*4].........................[100*4]]' 
len(X_train) = 75
X_Train[0] = [100*4]
X_Train.columns=['Speed','Angle', 'Acceleration1', 'Acceleration2']

每隔特定时间从车辆接收的[100 * 4]数据。假设X_train [0]是15到30秒的驾驶学习数据。 X_train [1。]可能需要15到30秒才能驾驶学习数据,依此类推.....

hmmlearn中的问题

hmmlearn 库中,我想澄清一些查询。 我的目标是为我的数据集获取训练模型的参数,例如初始概率,状态转移概率,高斯权重,均值和协方差。

使用2个高斯2个隐藏状态创建的模型

model = hmm.GMMHMM(n_components=2, n_mix=2, covariance_type="diag", n_iter=100)

问题1:

我应该concatenate将整体数据集Working with multiple seq from hmmlearn document列为一个列表吗?

如果是,那么我的training data set (X)的大小将为7500 *4,并且lengths参数将具有类似lengths = [100, 100, 100, ......100]的列表

这是适合的实施方式吗?

问题:2

我如何检查EM算法的收敛性?我已经看过 monitor _ 的文档 功能。但是我听不懂。

问题:3

训练后,我想检查大小为100 * 4的未训练序列的概率(使用正向算法)。那么,使用经过训练的模型参数来应用正向算法所需的功能是什么?

我已经发布了许多与HMM培训有关的问题,但是根据我的要求,我还没有满意的答案。我希望hmmlearn库可以帮助

0 个答案:

没有答案