Sklearn中的PCA内存错误:替代暗淡减少?

问题描述 投票:6回答:1

我试图在Sklearn中使用PCA来减小非常大的矩阵的维数,但它会产生内存错误(RAM需要超过128GB)。我已经设置了copy = False,而且我正在使用计算成本较低的随机PCA。

有解决方法吗?如果没有,我可以使用哪些其他暗淡减少技术需要更少的内存。谢谢。


更新:我尝试PCA的矩阵是一组特征向量。它来自于通过预训练的CNN传递一组训练图像。矩阵是[300000,51200]。尝试了PCA组件:100到500。

我想减少它的维度,所以我可以使用这些功能来训练ML算法,例如XGBoost。谢谢。

python multidimensional-array scikit-learn pca
1个回答
6
投票

最后,我使用TruncatedSVD而不是PCA,它能够处理没有内存问题的大型矩阵:

from sklearn import decomposition

n_comp = 250
svd = decomposition.TruncatedSVD(n_components=n_comp, algorithm='arpack')
svd.fit(train_features)
print(svd.explained_variance_ratio_.sum())

train_features = svd.transform(train_features)
test_features = svd.transform(test_features)
© www.soinside.com 2019 - 2024. All rights reserved.