问题标签 [hmmlearn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
615 浏览

python-3.x - ImportError:无法导入名称'distribute_covar_matrix_to_match_covariance_type'

我正在尝试运行hmmlearn 教程中的代码,但我从已删除的方法“distribute_covar_matrix_to_match_covariance_type”中得到一个导入错误。我不知道如何在 Anaconda 中安装不会导致此问题的 hmmlearn 版本。

我在 Windows 10 上运行它:

  • (名称、版本、版本、频道)
  • hmmlearn,0.3.0b,np112py36_0,omnia
  • scikit-learn,0.20.1,py36hb854c30_0
  • 蟒蛇,3.6.8,h9f7ef89_7

我已经使用以下命令通过 Anaconda 安装了 hmmlearn 和 scikit-learn conda install -c omnia hmmlearn

在我看来,通过 Anaconda 安装的 hmmlearn 不是 hmmlearn 的最新版本,因为在文件中hmm.py存在这一行from sklearn.mixture import ( distribute_covar_matrix_to_match_covariance_type, _validate_covars )比较最新版的hmmlearn

在 Anaconda 中与 hmmlearn 一起安装的捆绑 scikit-learn 中,该distribute_covar_matrix_to_match_covariance_type方法被删除,因为它应该在 scikit-learn 0.20.1 中。(它在 0.20 中被移除

问题似乎是 Anaconda 正在安装不兼容的 hmmlearn 和 scikit-learn 版本。关于如何安装这些软件包的兼容版本的任何建议?

0 投票
1 回答
642 浏览

python - 使用 HMMLearn.multinomialhmm(discrete hmm) 预测下一次观察

我已经使用以下方法实现了 HMM hmmlearn

我也有一系列观察结果:

现在我想预测下一次观察(在 t+1 时),但不知道如何。

(*我已阅读文档但一无所获)

0 投票
0 回答
408 浏览

python-3.x - 如何使用python2中保存的python3 pkl文件导入

我正在运行来自vehicle-prediction的一些演示代码。说到models目录下的模型,我可以在 Python2 中加载这个模型model_2000_car_100_iter_v.pkl,但我的集成环境是 Python3。因此,当我运行代码以使用 Python3 加载模型时joblib.load(),会引发错误:

我试图弄清楚这个是指泡菜,因为 joblib 是指泡菜。所以泡菜文档encoding = 'latin1'可以避免这个问题,但没有成功。而且我还尝试了“iso-8859-1”编码,也失败了。

我可以看到 pickle 允许用户在 Python3 中保存模型,并使用protocol参数在 Python2 中加载它,但是我该如何反过来呢?有没有办法使用joblib在不同的python版本中加载模型?

0 投票
0 回答
785 浏览

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

我正在尝试使用顺序形式的连续数据集来实现 HMM 学习/训练。我试图用高斯混合/EM算法构建一个新的HMM训练,但我一直面临一些问题,所以我切换到hmmlearnpython中的库。

关于我的数据集的概述

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

列表中的总元素 = 75

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

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

在特定时间间隔从车辆接收的每 [100*4] 个数据。假设 X_train[0] 是 15 到 30 秒的驾驶学习数据。X_train[1.] 可能是 15 到 30 秒的驾驶学习数据等等.....

hmmlearn 中的问题

hmmlearn图书馆我想澄清一些疑问。我的目标是为我的数据集获取训练模型的参数,例如初始概率、状态转换概率、高斯权重、均值和协方差等。

使用 2 个具有 2 个高斯分布的隐藏状态创建的模型

问题一:

我应该按照文档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 库有所帮助

0 投票
1 回答
182 浏览

hidden-markov-models - 解读hmmlearn的收敛报告

hmmlearn 参考页和代码中提到了“verbose”关键字的用法,如下所示:“verbose (bool, optional) – 当 True 每次迭代收敛报告打印到 sys.stderr 时。”。在运行期间,我可以看到每次迭代的 2 列输出,如下所示:

,其中 19 和 20 是迭代次数。你能告诉每行的另外两个数字是什么吗?我假设其中一个(第一个)是对数似然。

0 投票
0 回答
330 浏览

hidden-markov-models - 无法运行具有大量混合物的 GMMHMM(hmmlearn 中具有高斯混合排放的隐马尔可夫模型)

我正在尝试使用Gaussian Mixture Model以下配置在 hmmlearn 包中使用具有 49792 个样本的时间序列:

我收到以下错误:

ValueError: n_samples=3 应该 >= n_clusters=5

我无法理解为什么 n_samples = 3 会引发错误(似乎在初始 random 期间clustering,某些集群中的样本数量变得非常少)。有没有办法解决这个问题?

0 投票
0 回答
118 浏览

python - 实现具有可变发射和转移矩阵的隐马尔可夫模型

我正在尝试使用 Python 中的隐藏马尔可夫模型来实现地图匹配。

我最初的方法基于的论文定义了为每个状态生成它们的转换和发射概率的方程。这些概率对于状态和测量都是唯一的。

我正在尝试使用诸如hmmlearn 之类的 Python HMM 框架来模拟他们的发现,但是我看过的所有库都只允许您定义一个初始发射和转换矩阵,并可以选择训练它(而且我不认为我如果我有定义矩阵的方程,则需要对其进行训练)。

我正在考虑在 hmmlearn 中使用 GaussianHMM,因为我的发射是高斯的,但我无法定义初始协方差和均值矩阵,因为每个发射都有自己的分布(参见论文中的等式 1)。

此外,每个转换概率都取决于排放(参见方程 2),因此它们也不能是恒定的。

谢谢您的帮助!

0 投票
1 回答
169 浏览

python - 当我在 hmmlearn 包中使用 model.score 时,为什么会出现“'diag' mix covars must be non-negative”错误?

我一直在努力继续语音识别一个月,我找到了hmmlearn包。我可以使用_model = hmm.GMMHMM(...)和创建我的音素模型_model.fit(...)。但是当我想使用 _model.score(_extracted_test_features) 测试样本时,我得到了这个错误:

.format(self.covariance_type)) ValueError: 'diag' mix covars must be non-negative

这是我的代码:

有人知道这个错误吗?我找到了一些解决方案,但它们是几年前的,之后 hmmlearn 包得到了一些更新并修复了它们。

0 投票
0 回答
150 浏览

time-series - HMM:学习信号中的状态。(使用 hmmlearn python 库)

我有时间序列数据,我试图在我的 HMM 模型中学习 3 个状态。我得到的输出是这个。我想为 3 个不同的数据点集群获得三个不同的状态。但是第一个集群具有从 HMM 学习的混合状态,而不是单一状态。

这是我的代码。

测试数据的每个状态的概率图是这样的。

如何获得数据的三种不同状态?

0 投票
1 回答
43 浏览

hmmlearn - 使用 hmmlearn 等于零的转换矩阵

我正在使用 HMMlearn。我有 4 组不同的观察结果,我将它们连接起来。我用适合,来学习嗯。

首先,为什么转移矩阵等于零?

其次,为什么modell.means_会产生一个与数据维度相同的矩阵?