从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
获得了相同的错误。
有关如何使其发挥作用的任何建议吗?
答案 0 :(得分:2)
答案是,RandomizedPCA
无法使用Scikit-learn版本0.16.1的稀疏矩阵(当前稳定版本)。我所指的文档是针对先前版本的Scikit-learn,因此应该使用当前稳定版本的替代函数。
可能的替代方案是TruncatedSVD