我有大约1000个50000维度的向量x_i,但它们非常稀疏,每个向量只有大约50-100个非零元素。我想在这个数据集上进行PCA(在MATLAB中),以减少数据的不必要的极端维度。
不幸的是,由于需要从所有实例中减去均值,我不知道如何在没有中间完整矩阵的情况下完成此操作。当然,一个1000x50000的矩阵太大了,无法放入内存(实际上会导致我的整个计算机崩溃,原因未知)。当我尝试使用Matlab的内置
所以我的问题是:是否有一种方法可以在不需要作为中间步骤的大规模非稀疏矩阵的情况下对此数据进行PCA?
不幸的是,由于需要从所有实例中减去均值,我不知道如何在没有中间完整矩阵的情况下完成此操作。当然,一个1000x50000的矩阵太大了,无法放入内存(实际上会导致我的整个计算机崩溃,原因未知)。当我尝试使用Matlab的内置
princomp
时,也会导致计算机崩溃。所以我的问题是:是否有一种方法可以在不需要作为中间步骤的大规模非稀疏矩阵的情况下对此数据进行PCA?