2014-04-01 17 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'來重建原始數據。 –