最主要的一点:
- 对矩阵进行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),得敏感