用于高维数据的最快主成分分析PCA算法?

时间:2012-09-05 18:42:24

标签: data-mining

我想对由大约40 000个样本组成的数据集执行主成分分析,每个样本显示大约10 000个特征。

使用Matlab princomp函数需要很长时间......最快的算法是什么? i7双核/ 4GB拉姆需要多长时间?

感谢您的支持

1 个答案:

答案 0 :(得分:0)

这个的交叉点:https://scicomp.stackexchange.com/questions/1681/what-is-the-fastest-way-to-calculate-the-largest-eigenvalue-of-a-general-matrix/7487#7487

最近对此进行了一些很好的研究。新方法使用"随机算法"只需要对矩阵进行一些读取即可获得最大特征值的精确度。这与需要多次矩阵向量乘法以达到高精度的功率迭代形成对比。

您可以在此处详细了解新研究:

http://math.berkeley.edu/~strain/273.F10/martinsson.tygert.rokhlin.randomized.decomposition.pdf

http://arxiv.org/abs/0909.4061

此代码将为您完成:

http://cims.nyu.edu/~tygert/software.html

https://bitbucket.org/rcompton/pca_hgdp/raw/be45a1d9a7077b60219f7017af0130c7f43d7b52/pca.m

http://code.google.com/p/redsvd/

https://cwiki.apache.org/MAHOUT/stochastic-singular-value-decomposition.html

如果您选择的语言不在那里,您可以很容易地推出自己的随机SVD;它只需要一个矩阵向量乘法,然后调用一个现成的SVD。