我正在使用scikit-learn的GaussianHMM,當我嘗試將它適用於某些觀察值時,出現以下ValueError錯誤。這裏是顯示錯誤的代碼:scikit-learn GaussianHMM ValueError:輸入必須是方形陣列
>>> from sklearn.hmm import GaussianHMM
>>> arr = np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> arr
matrix([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
>>> gmm = GaussianHMM()
>>> gmm.fit (arr)
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/lib/function_base.py:2005: RuntimeWarning: invalid value encountered in divide
return (dot(X, X.T.conj())/fact).squeeze()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/sklearn/hmm.py", line 427, in fit
framelogprob = self._compute_log_likelihood(seq)
File "/Library/Python/2.7/site-packages/sklearn/hmm.py", line 737, in _compute_log_likelihood
obs, self._means_, self._covars_, self._covariance_type)
File "/Library/Python/2.7/site-packages/sklearn/mixture/gmm.py", line 58, in log_multivariate_normal_density
X, means, covars)
File "/Library/Python/2.7/site-packages/sklearn/mixture/gmm.py", line 564, in _log_multivariate_normal_density_diag
+ np.dot(X ** 2, (1.0/covars).T))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/matrixlib/defmatrix.py", line 343, in __pow__
return matrix_power(self, other)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/matrixlib/defmatrix.py", line 160, in matrix_power
raise ValueError("input must be a square array")
ValueError: input must be a square array
>>>
我該如何解決這個問題?看來我正在給它有效的輸入。謝謝!
然而,如果我使arr不是方矩陣,即使將它封裝在括號中,我仍然會得到相同的錯誤...即,如果arr是矩陣([[1,2,3], [4,5,6], [7,8,9], [10,11,12]])。有任何想法嗎?謝謝! –