【发布时间】:2014-04-01 09:33:12
【问题描述】:
在 R 中使用 PCA 向下投影后如何重建图像?
如果原始图像是 N 维,我将其向下投影到 10 维。 我现在如何从 10 维重建 N 维图像? 我当然知道会丢失信息。
【问题讨论】:
-
以下视频可能会有所帮助class.coursera.org/ml-003/lecture/87
在 R 中使用 PCA 向下投影后如何重建图像?
如果原始图像是 N 维,我将其向下投影到 10 维。 我现在如何从 10 维重建 N 维图像? 我当然知道会丢失信息。
【问题讨论】:
如果我理解正确,那么您想使用前 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
【讨论】:
prcomp的默认值是center = TRUE,我相信你还需要添加p$center来重构原始数据。