我正在使用 R 进行文本分类任务,我获得了一个大小为 22490 x 120,000 的文档项矩阵(只有 400 万个非零条目,不到 1% 的条目)。现在我想通过利用 PCA(主成分分析)来降低维度。不幸的是,R 无法处理这个巨大的矩阵,所以我将这个稀疏矩阵存储在“矩阵市场格式”的文件中,希望使用其他一些技术来做 PCA。
所以任何人都可以给我一些有用的库的提示(无论是什么编程语言),它可以轻松地用这个大规模矩阵做 PCA,或者我自己做一个手写的 PCA,换句话说,首先计算协方差矩阵,然后然后计算协方差矩阵的特征值和特征向量。
我想要的是计算所有PC(120,000),并且只选择前N个PC,它们占90%的方差。显然,在这种情况下,我必须先给出一个阈值来将一些非常小的方差值设置为 0(在协方差矩阵中),否则,协方差矩阵将不是稀疏的,其大小将为 120,000 x 120,000,即不可能用一台机器处理。此外,载荷(特征向量)将非常大,应该以稀疏格式存储。
非常感谢您的帮助!
注意:我使用的是 24GB RAM 和 8 个 cpu 内核的机器。