0
我試圖按照此tutorial GMM與Python SciKit。問題是原始代碼無法正常工作。它說輸入陣列的形狀存在問題,並且GMM現在已經被取消了。我試圖將其改寫爲:SciKit高斯混合模型ValueError:x和y必須具有相同的第一維
np.random.seed(2)
x = np.concatenate([np.random.normal(0, 2, 200),
np.random.normal(5, 5, 200),
np.random.normal(3, 0.5, 600)])
x = np.reshape(x, (-1, 1))
plt.hist(x, 80, normed=True)
plt.xlim(-10, 20)
clf = GaussianMixture(4, max_iter=500, random_state=3).fit(x)
xpdf = np.linspace(-10, 20, 1000)
xpdf = np.reshape(xpdf, (-1, 1))
density = np.exp(clf.score(xpdf))
plt.hist(x, 80, normed=True, alpha=0.5)
plt.plot(xpdf, density, '-r')
plt.xlim(-10, 20)
但是我仍然得到一個ValueError: x and y must have same first dimension
。據我現在可以理解,問題已經從陣列的形狀變成了density
變量的形狀。但我不確定實際發生了什麼。任何人都可以請解釋一下嗎?謝謝。
似乎它是根據GitHub的已知錯誤。他們提供的解決方案是稍微更改源代碼或不使用一維數組。 –
哪個命令拋出錯誤? –
@PaulH錯誤現在似乎在'plot'方法中,並且由''density'變量的形狀引起。我不知道爲什麼,或者在示例中顯示的行爲發生了什麼變化。 – ClonedOne