【问题标题】:How is the complexity of PCA O(min(p^3,n^3))?PCA O(min(p^3,n^3)) 的复杂度如何?
【发布时间】:2023-04-06 12:10:01
【问题描述】:

我一直在阅读一篇关于稀疏 PCA 的论文,它是: http://stats.stanford.edu/~imj/WEBLIST/AsYetUnpub/sparse.pdf

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

谁能解释一下如何/为什么?

【问题讨论】:

    标签: matrix machine-learning time-complexity pca


    【解决方案1】:

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

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

    【讨论】:

    • 奇怪的是,这篇论文含糊其词地表述为“涉及搜索方向”。它并没有直接说这是算法的复杂性,只是强烈暗示了这一点。
    • 太棒了!您能否为上述内容提供参考,以便更容易引用?
    • @ÉbeIsaac 协方差矩阵复杂度直接从定义中得出。特征值分解有较低复杂度的算法,但它们接近于 O(p³),这可能是论文作者假设的复杂度。但是,您不应该将 SO 答案作为权威来源引用,除非它们来自 Jon Skeet。
    【解决方案2】:

    假设您的数据集是 $X \in \R^{nxp}$ 其中 n:样本数,d:样本的维度,您对 $X^TX$ 的特征分析感兴趣,这是主要的计算成本的 PCA。现在矩阵 $X^TX \in \R^{pxp}$ 和 $XX^T \in \R^{nxn}$ 具有相同的 min(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}$$

    【讨论】:

    • 不幸的是没有乳胶支持,我建议您使用反引号将其格式化为代码,或将您的乳胶公式导出为 png 并上传。
    【解决方案3】:

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

    LaTeX 代码:

    假设您的数据集是 $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}$ 具有相同的 min(n, p) 非负特征值和特征向量。假设 p 小于 n,您可以求解 $O(p^3)$ 中的特征分析。如果 p 大于 n(例如在计算机视觉中,在许多情况下样本的维数 - 像素数 - 大于可用样本的数量),您可以在 $O(n^3)$ 时间内执行特征分析。在任何情况下,您都可以从另一个矩阵的特征值和特征向量中获取一个矩阵的特征向量,并在 $O(min(p, n)^3)$ 时间内完成。

    【讨论】:

    • 请将任何代码作为实际代码发布,图像没有帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 2022-01-23
    • 2023-03-31
    相关资源
    最近更新 更多