Python hmmlearn中的GMMHMM是否在运行时没有任何n_样本大小的bug?
首先,我的hmmlearn版本是0.3.0b(使用conda安装) 我试图在hmmlearn中实现GMMHMM模型,但我得到:Python hmmlearn中的GMMHMM是否在运行时没有任何n_样本大小的bug?,python,mixture-model,hmmlearn,Python,Mixture Model,Hmmlearn,首先,我的hmmlearn版本是0.3.0b(使用conda安装) 我试图在hmmlearn中实现GMMHMM模型,但我得到: ValueError: n_samples=3 should be >= n_clusters=5 更具体地说,我有一个由4个状态和5个混合高斯(簇)组成的模型,我的输入X变量有形状(20,3),如(n个样本,n个特征)中所述 以下是创建错误的代码: import numpy as np from hmmlearn import hmm size = 30 d
ValueError: n_samples=3 should be >= n_clusters=5
更具体地说,我有一个由4个状态和5个混合高斯(簇)组成的模型,我的输入X变量有形状(20,3)
,如(n个样本,n个特征)
中所述
以下是创建错误的代码:
import numpy as np
from hmmlearn import hmm
size = 30
data = np.concatenate((np.random.normal(0,1,size), np.random.normal(5,2,size)))
np.random.shuffle(data)
x = np.reshape(data,(-1,3))
model = hmm.GMMHMM(n_components=4, n_mix=5)
model.fit(x)
有人能找到任何理由吗?或者这是图书馆的一个bug?我找不到实现GMMHMM模型的在线示例。我也有同样的问题 它似乎希望在一行中包含多个样本,高斯混合将在这些样本上进行训练。即,一个三维数组,其中每行是一个样本数组,每个样本是多元高斯混合特征数组:
[
[[a b],[a b],[a b],[a b]]
[[a b],[a b],[a b],[a b]]
[[a b],[a b],[a b],[a b]]
[[a b],[a b],[a b],[a b]]
...
]
这是因为,当我试图将其重塑为一行多个样本时,我克服了错误。但是,我得到了一个错误,即没有足够的n_样本用于HMM本身的训练,即缺少行
[
[a a a a a a a a a],[b b b b b b b b b]
]
问题是fit()方法只接受二维数组,而不接受三维数组。所以我无法做到这一点,我不知道HMMGMM中的多元高斯混合应该如何用hmmlearn实现
但由于特征的性质是相同的,我将它们以不同的偏移量一个接一个地堆叠成一个连续的流,并训练一个变量(而不是多变量)的简单高斯混合:
2d概率密度函数中将有2个凸起,而不是单个3d“凸起”,这足以区分不同的输入时间序列。我也有同样的问题 它似乎希望在一行中包含多个样本,高斯混合将在这些样本上进行训练。即,一个三维数组,其中每行是一个样本数组,每个样本是多元高斯混合特征数组:
[
[[a b],[a b],[a b],[a b]]
[[a b],[a b],[a b],[a b]]
[[a b],[a b],[a b],[a b]]
[[a b],[a b],[a b],[a b]]
...
]
这是因为,当我试图将其重塑为一行多个样本时,我克服了错误。但是,我得到了一个错误,即没有足够的n_样本用于HMM本身的训练,即缺少行
[
[a a a a a a a a a],[b b b b b b b b b]
]
问题是fit()方法只接受二维数组,而不接受三维数组。所以我无法做到这一点,我不知道HMMGMM中的多元高斯混合应该如何用hmmlearn实现
但由于特征的性质是相同的,我将它们以不同的偏移量一个接一个地堆叠成一个连续的流,并训练一个变量(而不是多变量)的简单高斯混合:
2d概率密度函数中将有2个凸起,而不是单个3d“凸起”,这足以区分不同的输入时间序列