如何对非常高维度的数据执行PCA?


12

要执行主成分分析(PCA),您必须从数据中减去每一列的均值,计算相关系数矩阵,然后找到特征向量和特征值。嗯,这是我在Python中实现的方法,只是它仅适用于小型矩阵,因为找到相关系数矩阵(corrcoef)的方法不允许我使用高维数组。由于我必须将其用于图像,因此我当前的实现并没有真正帮助我。

我已经读过,可以只使用数据矩阵并计算而不是,但这对我不起作用。好吧,除了它应该是矩阵而不是(在我的情况下为)之外,我不确定我是否理解它的含义。我在特征脸教程中读到了有关这些内容的文章,但似乎都没有一个能以我能真正理解的方式进行解释。d d / Ñ d d / Ñ Ñ × Ñ p × p p » ÑDDD/nDD/nn×np×ppn

简而言之,该方法是否有简单的算法描述,以便我可以遵循?


您所读的内容是正确的。矩阵称为Gram矩阵。其特征向量是(缩放的)主分量。其特征值与协方差矩阵的特征值完全相同,直到因子为止。DD1/nDD/n
变形虫说恢复莫妮卡

Answers:


10

进行标准PCA的最简单方法是,减去列均值,然后将数据矩阵的列居中(假设列对应于不同的变量),然后执行SVD。左奇异矢量乘以对应的奇异值,对应于(估计的)主分量。右边的奇异矢量对应于(估计的)主分量方向-这些与PCA给出的特征矢量相同。奇异值对应于主成分的标准偏差(乘以根n,其中n是数据矩阵中的行数)–与PCA提供的特征值的平方根相同。

如果要对相关矩阵进行PCA,则需要在应用SVD之前标准化数据矩阵的列。这等于减去均值(居中),然后除以标准差(缩放)。

如果您需要完整的PCA,这将是最有效的方法。您可以使用一些代数来验证,这与样本协方差矩阵的频谱分解所提供的答案相同。

当您只需要几台PC时,还有一些计算部分SVD的有效方法。其中一些是功率迭代的变体。所述的Lanczos算法是一个例子,其也与偏最小二乘。如果矩阵很大,则使用近似方法可能会更好。在这种情况下,也有统计上的原因使PCA正规化。


如果我错了,请纠正我,但是我认为Lanczos算法执行本征分解而不是SVD。
变形虫说恢复莫妮卡

1
有兴趣的读者可以在这里查找有关通过SVD执行PCA的更多详细信息:SVD与PCA之间的关系。如何使用SVD执行PCA?
变形虫说恢复莫妮卡

10

你在做什么,现在是接近的,但你需要确保你乘的特征向量(data . data.T) / lines由左data.T,为了得到的特征向量(data.T . data) / lines。有时称为“转置技巧”。

AAATA

Am×nn>>mATAn×nATAm×mAATATAAAT

vAATλ

  • AATv=λv
  • AT(AATv)=AT(λv)
  • (ATA)(ATv)=λ(ATv)

vAATATvATAAATAvAATATATvATA


1
这听起来像是应用于PCA的“内核技巧”。en.wikipedia.org/wiki/Kernel_PCA这是处理某些大型矩阵的一种很好的方法。
Gilead

AA

8

听起来您想要的是用于执行PCA的NIPALS算法。这是统计学家中非常流行的算法。它具有许多优点:

  • 如果只需要前几个组件,则与SVD或特征值分解方法相比,计算上的成本更低。
  • 通常,由于从未形成协方差矩阵,所以对存储的要求更为适中。对于非常大的数据集,这是非常重要的属性。
  • 可以处理数据集中的缺失数据(尽管这不是问题,因为您正在处理图像)。

说明
http://en.wikipedia.org/wiki/Non-linear_iterative_partial_least_squares

算法
这是对算法的简单而出色的描述(在1.2节中)
http://stats4.eng.mcmaster.ca/w/mediafiles/mediawiki/f/f7/Section-Extra-Class-1.pdf

切记在进行PCA之前首先要进行中心缩放,因为它对缩放敏感。


4

为了补充吉利德的答案,对于截短的PCA,它们在计算上更便宜。NIPALS确实非常受欢迎,但是我通过近似方法对部分数据(通常称为随机投影的PCA)进行拟合,取得了很多成功。在metaoptimize线程中对此进行了讨论。

正如您提到的Python,让我指出该算法是在scikit-learn中实现的PCA类。特别地,它在展示本征面的示例中使用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.