Open ChenGeng777 opened 2 years ago
numpy.linalg.svd(A) 中, 如果用多元随机变量的协方差的无偏样本对协方差矩阵C= Cov(X^T,X) = X^T*X/(n-1) 进行 SVD, A应该是中心化的X, 即 $$X = USV^h$$ $$C = VS U^h USV/(n-1) = V S^2 V^h $$
所以, 应该用 np.linalg.svd(X), 其中 X 做了中心化。实例中做标准化再 SVD 是用相关系数矩阵为标准做PCA。
相关资源参考: PCA 和 SVD 关系
numpy.linalg.svd(A) 中, 如果用多元随机变量的协方差的无偏样本对协方差矩阵C= Cov(X^T,X) = X^T*X/(n-1) 进行 SVD, A应该是中心化的X, 即 $$X = USV^h$$ $$C = VS U^h USV/(n-1) = V S^2 V^h $$
所以, 应该用 np.linalg.svd(X), 其中 X 做了中心化。实例中做标准化再 SVD 是用相关系数矩阵为标准做PCA。
相关资源参考: PCA 和 SVD 关系