在大型数据集上执行PCA

use*_*347 2 machine-learning python-2.7 scikit-learn

在CountVectorizer变为(40,845 X 218,904)(unigram)之后,我只有2个类和训练数据集矩阵大小的文档分类问题.在考虑三卦的情况下,它可达到(40845 X 3,931,789).有没有办法在这样的数据集上执行PCA而不会获得内存或稀疏数据集错误.我在6GB机器上使用python sklearn.

New*_*wmu 5

您可以尝试使用稀疏SVD,通过sklearn中的TruncatedSVD实现:

http://scikit-learn.org/stable/modules/generated/sklearn.decomposition.TruncatedSVD.html

对文档数据集执行SVD是一种常用技术,通常称为潜在语义分析(LSA).SVD和PCA也非常相似.如果您想了解更多有关差异的信息,这个问题有一些很好的信息:

https://math.stackexchange.com/questions/3869/what-is-the-intuitive-relationship-between-svd-and-pca