2014-04-01 16 views

回答

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 
+0

它不是SVD – user3111311

+0

@ user3111311 PCA和SVD非常密切相关的PCA。事实上,svd是实施PCA的首选方式。 – TooTone

+0

由于'prcomp'的默认值为'center = TRUE',我相信你还需要添加'p $ center'来重建原始数据。 –