【问题标题】:Pandas/Scikit - Apply sparse PCA while creating feature vectorsPandas/Scikit - 在创建特征向量时应用稀疏 PCA
【发布时间】:2015-11-06 08:31:54
【问题描述】:

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

【问题讨论】:

    标签: python r pandas machine-learning scikit-learn


    【解决方案1】:

    this answer。您将希望使用 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 方法进行在线更新,尽管它只接受密集输入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-16
      • 2016-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-30
      • 2013-09-25
      相关资源
      最近更新 更多