SVD与PCA的联系

最主要的一点:

  • 对矩阵进行PCA降维,一般是通过SVD实现的,而不是去计算原矩阵特征的协方差矩阵.
  • 当前数据为p*n的矩阵X,n个样本,每个样本维度为p
    • SVD: Xpn = UΣV^t
    • PCA: Xpn = App^t*Ypn (A是正交矩阵,由p个特征的协方差矩阵的单位特征向量构成;Y是在新维度下的数据表示)
  • 将SVD与PCA联系起来
    • SVD: X*X^t = U*Σ*Σ^t*U^t (一)
    • PCA: X*X^t = A^t*Y*Y^t*A (二)
    • 重点来了
      我们可以看到,SVD和PCA的X*X^t展开式形式非常像!
      不妨令 A^t = U,代回原X表达式
      X = U*Σ*V^t = A^t*Y
      可得 Y = Σ*V^t
      这说明只需一次SVD计算就可得到对应PCA的正交矩阵和在新维度下的数据Y, 稳!

矩阵形式:

在默认列向量这种表示方法下,α^t*β是标量(scalar),得敏感
attention.jpg

0%