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