gpt4 book ai didi

python - 隐马尔可夫模型 python

转载 作者:行者123 更新时间:2023-11-30 09:17:27 24 4
gpt4 key购买 nike

我有一个粒子位置随时间变化的时间序列,我想使用这些数据估计两个 HMM 的模型参数(一个用于 x 轴,另一个用于 y 轴)。我正在使用 hmmlearn 库,但是,我不清楚应该如何进行。在教程中,它指出这是使用该库的第三种方式,但是,当我使用如下代码时:

remodel = hmm.GaussianHMM(n_components=3, covariance_type="full", n_iter=100)
remodel.fit(X)
Z2 = remodel.predict(X)

X 是 x 轴值的列表,它返回

ValueError: Expected 2D array, got 1D array instead

我应该在数据中添加什么才能将其转换为 2D?

最佳答案

买者自负:我对 HMM 和这个库的理解是基于几分钟的谷歌搜索和维基百科。也就是说:

要训练 HMM 模型,您需要大量观察样本,每个样本都是一个特征向量。例如,在 Wikipedia example爱丽丝根据鲍勃每天所做的事情预测鲍勃家的天气,爱丽丝获得了许多样本(鲍勃每天告诉她的内容),每个样本都有一个特征(鲍勃当天报告的事件)。鲍勃完全有可能为爱丽丝提供某一天的多个特征(例如,他做了什么,以及他的衣服是什么)。

为了学习/拟合 HMM 模型,您应该需要一系列样本,每个样本都是一个特征向量。这就是为什么 fit 函数需要二维输入。来自 the docsX 预计为“类似数组,形状(n_samples, n_features)”。在您的情况下,粒子的位置是唯一的特征,每个观察结果都是一个样本。因此,您的输入应该是形状为 n_samples, 1 的类似数组(单列)。现在,它的形状可能是 1, n_samples (单行,默认执行诸如 np.array([1, 2, 3]) 之类的操作)。所以只需 reshape :

remodel.fit(X.reshape(-1, 1))

关于python - 隐马尔可夫模型 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51577149/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com