主成分分析 (PCA) 算法

Principal Component Analysis (PCA) Algorithm

我已经尝试阅读许多关于 PCA 的参考资料,但我发现了不同之处。一些参考文献写了这个算法:

  1. 准备初始数据 (m x n)
  2. 计算平均值
  3. 用平均值减去初始数据
  4. 计算协方差
  5. 计算特征值和特征向量
  6. 结果数据转换 (m x k)

和其他几个参考文献编写了这个算法:

  1. 准备初始数据 (m x n)
  2. 计算平均值
  3. 计算标准差
  4. 计数 z 分数 =((初始数据 - 平均值)/标准差)
  5. 计算协方差
  6. 计算特征值和特征向量
  7. 结果数据转换 (m x k)

我不知道哪个是正确的算法。谁能解释一下何时使用这些算法?

感谢您的帮助

据我所知,您列出的算法之间的唯一区别是标准偏差的归一化。这是一种标准做法,可确保将具有不同 "range" 的值重新缩放到相似的范围。如果您的数据具有类似的缩放比例,则此步骤不是绝对必要的。您可以在这里找到更深入的讨论:https://stats.stackexchange.com/questions/134104/why-do-we-divide-by-the-standard-deviation-and-not-some-other-standardizing-fact

举一个这种缩放问题的例子,我们可以想象多维数据,每个维度描述不同的质量。例如,维度一可以描述到某个物体的距离(以毫米为单位),范围从 1000-3000,而其他维度将物体颜色的 R、G 和 B 分量描述为范围从 0.0 到 1.0 的浮点值。为了确保每个维度具有相似性"influence",我们将其除以标准差