我正在尝试使用顺序形式的连续数据集来实现 HMM 学习/训练。我试图用高斯混合/EM算法构建一个新的HMM训练,但我一直面临一些问题,所以我切换到hmmlearn
python中的库。
关于我的数据集的概述
例如,一个列表包含标准化的训练数据。
列表中的总元素 = 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)
问题一:
我应该按照文档Working with multiple seq from hmmlearn 文档concatenate
中的说明将我的整体数据集放到一个列表中吗?
如果是,那么我training data set (X)
将看起来像大小为7500 *4
,而且,长度参数将有一个类似的列表lengths = [100, 100, 100, ......100]
这是应该实施的方式吗?
问题2
如何检查我的 EM 算法收敛?我看过monitor_ 功能的文档。但我无法理解。
问题:3
训练后,我想检查大小为 100*4 的未训练序列的概率(使用前向算法)。那么使用经过训练的模型参数应用前向算法所需的功能是什么?
我发布了许多与 HMM 培训相关的问题,但根据我的要求,我没有满意的答案。我希望 hmmlearn 库有所帮助