在用R中的PCA下载后,如何重建图像?

时间:2014-04-01 09:33:13

标签: r pca

如何用R中的PCA向下投影后重建图像?

如果原始图像是N维,我将其向下投影到10维。 如何从10维重建N维图像? 当然我知道会丢失信息。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么你想要使用前10个主要成分重建表示为矩阵X的图像。假设你有原始图像,你可以先使用函数" svd"分解矩阵。然后保留前10个奇异值。

   s <- svd(X)    #perform singular value decomposition
   s$d[11:N] <- 0 #keep first 10 components
   Xre <- s$u %*% diag(s$d) %*% t(s$v) #reconstruct

我正在编辑以包含PCA版本。

   p <- prcomp(X)
   Xre <- p$x[,1:10] %*% t(p$rotation[,1:10]) #multiply rotated matrix and rotation matrix