簡體   English   中英

對於任何 n_samples 大小,hmmlearn 中的 GMMHMM 是否都沒有錯誤運行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM