Matrix 主成分分析O(min(p^3,n^3))的复杂性如何?

Matrix 主成分分析O(min(p^3,n^3))的复杂性如何?,matrix,machine-learning,time-complexity,pca,Matrix,Machine Learning,Time Complexity,Pca,我一直在读一篇关于稀疏PCA的论文,它是: 它指出,如果你有n数据点,每个数据点用p特征表示,那么PCA的复杂性是O(min(p^3,n^3)) 有人能解释一下为什么吗?协方差矩阵的计算是O(p2n);其特征值分解为O(p3)。因此,PCA的复杂度为O(p2n+p3) O(min(p3,n3))意味着您可以在固定时间内分析任意大小的二维数据集,这显然是错误的。假设您的数据集是$X\in\R^{nxp}$,其中n:样本数,d:样本维数,您对$X^TX$的特征分析感兴趣,这是PCA的主要计算成本。

我一直在读一篇关于稀疏PCA的论文,它是:

它指出,如果你有
n
数据点,每个数据点用
p
特征表示,那么PCA的复杂性是
O(min(p^3,n^3))


有人能解释一下为什么吗?

协方差矩阵的计算是O(p2n);其特征值分解为O(p3)。因此,PCA的复杂度为O(p2n+p3)


O(min(p3,n3))意味着您可以在固定时间内分析任意大小的二维数据集,这显然是错误的。

假设您的数据集是$X\in\R^{nxp}$,其中n:样本数,d:样本维数,您对$X^TX$的特征分析感兴趣,这是PCA的主要计算成本。现在矩阵$X^TX\in\R^{pxp}$和$XX^T\in\R^{nxn}$具有相同的最小(n,p)非负特征值和特征向量。假设p小于n,你可以用$O(p^3)$来解特征分析。如果p大于n(例如,在许多情况下,在计算机视觉中,样本的维数-像素数-大于可用样本数),则可以在$O(n^3)$时间内执行特征分析。在任何情况下,您都可以从另一个矩阵的特征值和特征向量中获得一个矩阵的特征向量,并在$O(min(p,n)^3)$时间内完成

$$X^TX=V\Lambda V^T$$

$$XX^T=U\Lambda U^T$$


$$U=XV\Lambda^{-1/2}$$

以下是michaelt在原始LaTeX中提供的答案,并呈现为PNG

乳胶代码:


假设您的数据集是$X\in R^{n\times p}$,其中n:样本数,p:样本维度,您对$X^TX$的特征分析感兴趣,这是PCA的主要计算成本。现在矩阵$X^TX\in\R^{p\times p}$和$XX^T\in\R^{n\times n} $具有相同的最小(n,p)非负特征值和特征向量。假设p小于n,你可以用$O(p^3)$来解特征分析。如果p大于n(例如,在许多情况下,在计算机视觉中,样本的维数-像素数-大于可用样本数),则可以在$O(n^3)$时间内执行特征分析。在任何情况下,您都可以从另一个矩阵的特征值和特征向量中获得一个矩阵的特征向量,并在$O(min(p,n)^3)$时间内完成


奇怪的是,这篇论文含糊其辞地将其表述为“涉及方向搜索”。它并没有直接说这是算法的复杂性,只是强烈暗示了它。太棒了!请您为上述内容提供一个参考,以便更容易引用?@贝萨阿协方差矩阵的复杂性直接从定义开始。特征值分解有较低复杂度的算法,但它们接近O(p³),这可能是本文作者假设的复杂度。不过,你不应该引用SO答案作为权威来源,除非它们来自Jon Skeet。不幸的是,没有latex支持,我建议你使用反引号将其格式化为代码,或者将latex公式导出到png并上传。请将任何代码作为实际代码发布,图像没有帮助