Scikit-learn(sklearn)PCA在稀疏矩阵

时间:2015-05-14 16:17:26

标签: python scikit-learn sparse-matrix pca

从sklearn RandomizedPCA的documentation开始,稀疏矩阵被接受为输入。然而,当我用稀疏矩阵调用它时,我得到了TypeError

> sklearn.__version__
'0.16.1'
> pca = RandomizedPCA(n_components=2)
> pca.fit(my_sparce_mat)
TypeError: A sparse matrix was passed, but dense data is required. Use X.toarray() to convert to a dense numpy array.

我使用fit_transform获得了相同的错误。

有关如何使其发挥作用的任何建议吗?

1 个答案:

答案 0 :(得分:2)

答案是,RandomizedPCA无法使用Scikit-learn版本0.16.1的稀疏矩阵(当前稳定版本)。我所指的文档是针对先前版本的Scikit-learn,因此应该使用当前稳定版本的替代函数。

可能的替代方案是TruncatedSVD

相关问题