Pandas/Scikit-在创建特征向量时应用稀疏PCA



我计划使用Pandas get_dummies()生成一个70000行150000列的庞大稀疏矩阵,但我遇到了MemoryError。如何在这个稀疏矩阵上应用PCA来降低维度?

看看这个答案。您将希望使用sklearn.decomposition.TruncatedSVD对稀疏矩阵进行PCA。例如:

import numpy as np
from scipy.sparse import coo_matrix
from sklearn.decomposition import TruncatedSVD
# create a sparse matrix:
np.random.seed(0)
i = np.random.randint(0, 100, 500)
j = np.random.randint(0, 1000, 500)
vals = np.random.random(500)
M = coo_matrix((vals, (i, j)), shape=(100, 1000))
# compute the sparse PCA
comp = TruncatedSVD(n_components=2).fit_transform(M)
comp.shape
# (100, 2)

如果稀疏矩阵本身太大而无法存储在内存中,则可以使用IncrementalPCApartial_fit方法进行在线更新,尽管它只接受密集输入。

相关内容

  • 没有找到相关文章

最新更新