【问题标题】:How can I reconstruct an image after it has been downprojected with PCA in R?在 R 中使用 PCA 向下投影图像后,如何重建图像?
【发布时间】:2014-04-01 09:33:12
【问题描述】:

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

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

【问题讨论】:

标签: r pca


【解决方案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

【讨论】:

  • @user3111311 PCA 和 svd 密切相关。事实上 svd 是实现 PCA 的首选方式。
  • 由于prcomp的默认值是center = TRUE,我相信你还需要添加p$center来重构原始数据。
猜你喜欢
  • 2014-05-11
  • 1970-01-01
  • 2022-10-05
  • 2021-06-08
  • 2023-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-28
相关资源
最近更新 更多