【问题标题】:PCA calculation using SVD vs EIG使用 SVD 与 EIG 的 PCA 计算
【发布时间】:2014-06-18 06:13:01
【问题描述】:

PCA 可以使用 SVD 和 EIG 计算,但 SVD 被认为在数值上更稳定(并且似乎更常用于成熟的机器学习项目)。

所以我需要在内存使用和性能方面对这两种方法进行一些比较,并证明为什么其中一种在数值上更稳定。

我在这里介绍 QR 方法和用于 SVD 计算的 Jacobi 旋转方法,但我不知道它们的性质。

【问题讨论】:

    标签: performance memory machine-learning linear-algebra pca


    【解决方案1】:

    我没有给你所有的答案,但如果你想研究这个,你要求的是舒尔分解和 SVD 的比较(例如http://www.ijcaonline.org/icvci/number14/icvci1529.pdf),因为我相信Schur 分解是大多数人计算特征值的方式。

    在我的工作中,如果没有其他原因,我通常更喜欢使用奇异值分解,因为特征值可以是复数,而奇异值总是实数。当然,SVD 的计算复杂度更高。

    我听说 SVD 更准确,但我承认我不知道为什么。我认为当人们说 SVD 更准确时,他们的意思是 svd(A) 将产生比 eig(A^T * A) 更准确的奇异值,这绝对是正确的。注意,A^T 表示矩阵 A 的转置。

    【讨论】:

      猜你喜欢
      • 2019-05-23
      • 1970-01-01
      • 2020-06-15
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      相关资源
      最近更新 更多