簡體   English   中英

sklearn.mixture.GMM將多條高斯曲線擬合到直方圖中,這是EM算法錯誤

[英]sklearn.mixture.GMM to fit multiple Gaussian curves into a histogram, an EM algorithm error

我正在使用sklearn.mixture.GMM將兩條高斯曲線擬合到數據數組,並因此將其與數據直方圖疊加(dat擾動是2條高斯曲線的混合)。

我的數據是浮點數列表,這是我正在使用的代碼行:

clf = mixture.GMM(n_components=1, covariance_type='diag')
clf.fit(listOffValues)  

如果我將n_components設置為1,則會出現以下錯誤:

“((或增加n_init)或檢查退化數據。”)RuntimeError:EM算法永遠無法在給定初始參數的情況下計算出有效似然。 嘗試使用不同的init參數(或增加n_init)或檢查退化數據。

如果我使用n_components到2有錯誤是:

(self.n_components,X.shape [0]))ValueError:GMM估計有2個分量,但只有1個樣本。

對於第一個錯誤,我嘗試更改GMM的所有初始化參數,但沒有任何區別。

嘗試了一個隨機數數組,代碼運行正常。 我不知道可能是什么問題。

有我忽略的實施問題嗎?

謝謝您的幫助。

如果我對您的理解正確-您想使數據分布適合高斯,並且每個元素只有一個功能。 比您應該將向量重塑為列向量:

listOffValues = np.reshape(listOffValues, (-1, 1))

否則,如果您的listOffValues對應於您要用幾個高斯擬合的某些曲線,則應使用curve_fit 查看適合Python的高斯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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