[英]Is the GMMHMM in hmmlearn running without bugs for any n_samples size?
首先,我的 hmmlearn 版本是 0.3.0b(使用 conda 安裝)。
我正在嘗試在 hmmlearn 中實現 GMMHMM 模型,但我得到:
ValueError: n_samples=3 should be >= n_clusters=5
為了變得更具體,我有一個包含 4 個狀態和 5 個混合高斯(簇)的模型,並且我的輸入 X 變量具有shape(20,3)
如文檔中提到的(n_samples, n_features)
。
這是創建錯誤的代碼:
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)
任何人都可以找到任何理由或者它是圖書館的錯誤嗎? 我找不到實現 GMMHMM 模型的在線示例。
我有同樣的問題。
似乎它需要連續多個樣本來訓練高斯混合。 即一個 3 維數組,其中每一行是一個樣本數組,每個樣本是一個多元高斯混合的特征數組:
[
[[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_samples 不足的錯誤,用於訓練 HMM 本身,即缺少行。
[
[a a a a a a a a a],[b b b b b b b b b]
]
問題是 fit() 方法只需要 2d 數組,而不是 3d。 所以我無法完成這項工作,我不知道如何使用 hmmlearn 完成 HMMGMM 中的多元高斯混合。
但是因為特征的性質是相同的,我將它們以不同的偏移量作為一個連續流堆疊在另一個之上,並訓練了一個變量(不是多變量)的簡單高斯混合:
[
[a + 1],
[b - 1],
[a + 1],
[b - 1],
...
]
2d 概率密度函數中將有 2 個凹凸,而不是單個 3d “山丘”,這足以區分不同的輸入時間序列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.