关于Matlab中PCA函数的参数

About argument of PCA function in Matlab

我有一个 115*8000 的数据,其中 115 是特征的数量。当我像这样使用 matlab 的 pca 函数时

[coeff,score,latent,tsquared,explained,mu] = pca(data);

关于我的数据。我得到一些值。我在 here 上读到如何减少我的数据,但有一件事让我感到困惑。 explained 数据显示了一个特征对计算的影响有多大,但特征是否在这个过程中得到了重组,或者特征与我赋予它的功能的顺序完全相同?

我也给出了 115 个特征,但 explained 显示了 114 个。为什么会这样?

PCA 中的数据未 "reorganized",转换为新的 space。当您裁剪 PCA space 时,那是您的数据,但您无法在那里 visualize/understand 它,您需要将其转换回 "normal" space ,使用特征向量等。

解释给你114因为你现在115的答案是什么! 100%的数据可以用整个数据来解释!

在这个答案中进一步了解它:

PCA 不会 "choose" 您的某些特征并移除其余特征。 所以你不应该还在考虑 运行 PCA 之后的原始特征。

它在维基百科上有很好的解释 here。您正在将样本从原始特征定义的 space 转换为特征线性不相关并称为 "principal components" 的 space。注意:这些组件不再是原来的功能。

2D 中的一个示例可能是:您在欧几里德 space 中定义了一个向量 z=(2,3)。它需要 2 个特征(x 和 y)。如果我们更改 space 并使用坐标向量 v=(2,3) 和 w 将其定义为 v 的正交向量,则 z=(1,0) i.e. z=1.v+0.w 现在只能用一个特征(第一个坐标!)表示.

您分享的 link 准确地解释了(在所选答案中)您可以如何使用 pca 函数的输出来降低维度。

(正如 Ander 所指出的,您不关心最后的组件,因为它们无论如何都是最弱的,您想要删除它们)