假设X是我们的数据集(仍未居中),而X_cent是我们的居中数据集(X_cent = X-mean(X))。

如果我们以这种方式进行PCA投影,则Z_cent = F * X_cent,其中F是主要成分的矩阵,这很明显我们需要在重建Z_cent之后添加均值(X)。

但是,如果我们以这种方式进行PCA投影Z = F * X怎么办?在这种情况下,我们不需要在重建后添加均值(X),但这会给我们另一个结果。

我认为此过程(构造-重构)在应用于非中心数据(在我们的例子中为X)时出了点问题。谁能解释它的工作原理?为什么没有这种加法/加法就不能进行建设/重建阶段?

先感谢您。

最佳答案

如果保留所有主成分,则问题中描述的居中和非居中向量的重建将是相同的。问题(如注释中所示)是您仅保留K主要组件。当您丢下PC时,您会丢失信息,因此重建将包含错误。由于您不必在其中一种重构中重构均值,因此无需引入误差w.r.t.那里的平均值,因此两个版本的重建误差将不同。

用少于所有PC的数量进行重构并不像乘以特征向量(F')的转置一样简单,因为您需要将转换后的数据用零填充,但为了保持简单,在这里我将忽略它。您的两个重构如下所示:

R1 = F'*F*X
R2 = F'*F*X_cent + X_mean
   = F'*F*(X - X_mean) + X_mean
   = F'*F*X - F'*F*X_mean + X_mean


由于重建是有损的,通常对于矩阵Y为F'*F*Y != Y。如果重新训练所有PC,则将具有R1 - R2 = 0。但是,由于您仅保留了一部分PC,因此您的两次重构将有所不同

R2 - R1 = X_mean - F'*F*X_mean


您在评论中的后续问题是,为什么要重建X_cent而不是X更好一些,但实际上取决于您为什么首先进行PCA。最根本的原因是PC首先是相对于均值,因此通过在转换/旋转之前不对数据进行居中,就不会真正对功能进行解相关。另一个原因是,首先将数据居中时,转换后的数据的数值通常会小几个数量级。

关于machine-learning - 为什么要在PCA的重建中添加均值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43470163/

10-12 19:39