我正在尝试聚类一组表示为稀疏 scipy 矩阵 X 的数据点。那是
>>> print type(X)
<class 'scipy.sparse.csr.csr_matrix'>
>>> print X.shape
(57, 1038)
>>> print X[0]
(0, 223) 0.471313296962
(0, 420) 0.621222153695
(0, 1030) 0.442688836467
(0, 124) 0.442688836467
但是,当我将此矩阵输入 sklearn.mix.GMM 模型时,它会引发以下 ValueError:
File "/Library/Python/2.7/site-packages/sklearn/mixture/gmm.py", line 423, in fit
X = np.asarray(X, dtype=np.float)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/numeric.py", line 235, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: setting an array element with a sequence.
但是,我已经能够使sklearn.cluster.KMeans模型在相同的稀疏矩阵X上完美运行。
其他一些希望有用的信息:SCIPY 版本 = 0.11.0,SKlearn 版本 = 0.14.1
关于出了什么问题的任何想法?提前感谢!
GMM不支持稀疏矩阵输入,而KMeans
则支持。如果估计器支持稀疏矩阵,则始终在相关方法的文档字符串中显式说明。