Python 使用linalg.svd从三个主分量重构矩阵

Python 使用linalg.svd从三个主分量重构矩阵,python,pca,svd,Python,Pca,Svd,我使用以下代码制作了一个svd,并将前三个主成分用于线性回归: u, s, vh = np.linalg.svd(X, full_matrices=False) self.singular_values = s self.Scores = u.dot(np.diag(s)) self.Loadings = vh.copy() 通过使用我的y值进行预测,从回归中得出PC1-3的结果。但是,如何利用这三个主成分重构矩阵呢pc_hat是三个主要组件,pca_w.载荷来自svd的载荷矩阵(vh)。但是

我使用以下代码制作了一个svd,并将前三个主成分用于线性回归:

u, s, vh = np.linalg.svd(X, full_matrices=False)
self.singular_values = s
self.Scores = u.dot(np.diag(s))
self.Loadings = vh.copy()
通过使用我的y值进行预测,从回归中得出PC1-3的结果。但是,如何利用这三个主成分重构矩阵呢
pc_hat
是三个主要组件,
pca_w.载荷
来自svd的载荷矩阵(
vh
)。但是得到的矩阵是(1263420),而不是(321140)

ai_hat = np.outer(pc_hat, pca_w.Loadings[0:3, :])