[我试图找出使用奇异值分解的PCA与使用特征向量分解的PCA相对的差异。
生动描述以下矩阵:
B = np.array([ [1, 2],
[3, 4],
[5, 6] ])
[使用特征向量分解计算此矩阵B的PCA时,请遵循以下步骤:
C = Cov(B) = B^T * B / (m -1)
,其中m = B的#行PCs = X * eigen_vecs
[使用SVD计算矩阵B的PCA时,请遵循以下步骤:
B = U * Sigma * V.T
PCs = U * Sigma
对于给定的矩阵,我都做了。
通过特征向量分解,我得到了这个结果:
[[-2.82842712 0. ] [ 0. 0. ] [ 2.82842712 0. ]]
使用SVD,我得到此结果:
[[-2.18941839 0.45436451] [-4.99846626 0.12383458] [-7.80751414 -0.20669536]]
特征向量分解得到的结果是作为解给出的结果。那么,为什么用SVD获得的结果不同?
[我知道:C = Cov(B) = V * (Sigma^2)/(m-1)) * V.T
,我感觉这可能与两个结果不同的原因有关。仍然。谁能帮助我更好地理解?
我试图找出使用奇异值分解的PCA与使用特征向量分解的PCA相对的差异。图片下面的矩阵:B = np.array([[1,...
请在下面查看与sklearn.decomposition.PCA和numpy.linalg.svd的矩阵的比较。您可以比较或发布您如何得出SVD结果。