【发布时间】:2013-07-24 11:22:17
【问题描述】:
我正在尝试对尺寸为 (100000,1024) 的矩阵执行白化。我需要确定 sklearn.decomposition 中的 PCA 或 RandomizedPCA 是否可以处理这种规模的问题,如果不能,我可以使用的最大功能数量是多少,并且仍然在大约 24 小时内完成。实现不是并行的。
根据the documentation for sklearn.decomposition.PCA,PCA 转换的时间复杂度为 'O(n ** 3) 假设 n ~ n_samples ~ n_features。但我不确定那个 ~ 符号是什么意思。
RandomizedPCA 据说效率更高,因为它是一个近似值,但我不知道多少。文档中没有关于它的时间复杂度。
作为参考,我已经对 (100000, 2) 进行了转换,这大约需要 2 分钟。我已经开始将(PCA 和 RandomizedPCA)转换为 (100000, 1024),两者都运行了大约一个小时。我想知道它们是否会完成,但如果我做不到,如果它们仍在运行,我会在 24 小时后终止它们。
【问题讨论】:
-
~ 表示大约。这个公式在实践中几乎没有用,因为通常人们会使用特征比样本少得多的 RandomizedPCA(或相反)。应该查看文档中引用的论文以了解确切的复杂性(我不是 100% 将其从脑海中剔除)。
标签: python scikit-learn pca