0

スパース 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.mixture.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.

ただし、同じ疎行列 X で sklearn.cluster.KMeans モデルを完全に機能させることができました。

その他の有用な情報: scipy バージョン = 0.11.0、sklearn バージョン = 0.14.1

何がうまくいかないのかについてのアイデアはありますか?前もって感謝します!

4

1 に答える 1

4

GMM は疎行列の入力をサポートしていませんが、サポートしてKMeansいます。estimator がスパース行列をサポートしている場合、これは関連するメソッドの docstring で常に明示的に述べられています。

于 2013-11-14T14:44:37.693 に答える