如何用R中的PCA向下投影后重建图像?
如果原始图像是N维,我将其向下投影到10维。 如何从10维重建N维图像? 当然我知道会丢失信息。
答案 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