您可能已经弄清楚了,但我还是会发布一个简短的描述。
首先,让我概括地介绍一下这两种技术。
PCA 基本上是将数据集进行转换(即将其投影到一个新空间中,通常是低维空间)。它实际上给出了相同数据的新表示。这个新表示具有一些有用的属性。例如,新空间的每个维度都与其解释的方差量相关联,即您可以根据PCA输出的变量的重要性对其进行排序。另一个属性是从PCA表示中删除线性相关性。
"SVD"是一种矩阵分解的方法。给定一个矩阵M(例如对于数据,它可以是一个n乘m的矩阵,其中n个数据点每个维度为m),您可以得到U、S、V=SVD(M),其中:M=USV^T,S是一个对角线矩阵,而U和V都是正交矩阵(意味着列和行是正交的;或等价地UU^T=I和VV^T=I)。矩阵S的条目称为矩阵M的奇异值。您可以将SVD视为矩阵的降维,因为您可以截断较低的奇异值(即将它们设置为零),在乘以它们时摧毁矩阵的“较低部分”,并获得对M的近似。换句话说,只需保留前k个奇异值(和U和V中的前k个向量),就可以得到矩阵的“降维”版本(表示)。从数学上讲,这实际上给出了最好的秩k逼近M的方法,类似于将其降至k维。(更多信息请参见
this answer)。
问题1:
我理解降维的一般前提是将数据降到更低的维度 - 但是
a)SVD和PCA如何做到这一点,b)它们在方法上有什么不同
答案是它们是相同的。
为了看清楚这一点,我建议阅读以下CV和数学交换网站上的帖子:
让我总结一下答案:
本质上,SVD可用于计算PCA。 PCA与数据的协方差矩阵的特征向量和特征值密切相关。本质上,通过取数据矩阵,计算其SVD,然后平方奇异值(并进行一些缩放),您最终得到数据协方差矩阵的特征分解。
问题2
也许如果您能解释每种技术的结果告诉我什么,比如a)SVD - 什么是奇异值b)PCA - “方差比例”
这些特征向量(SVD的奇异向量或PCA的主成分)形成了将数据转换为新空间的轴。特征值(与数据矩阵SVD奇异值的平方密切相关)
包含每个成分解释的方差。通常,人们希望保留原始数据的95%的方差,因此如果他们最初有n维数据,则通过选择保留95%原始方差的最大d特征值将其减少为d维数据。这样可以尽可能地保留信息,同时保留尽可能少的无用维度。
换句话说,这些值(解释方差)基本上告诉我们每个主成分(PC)的重要性,就其在重构原始(高维)数据方面的有用性而言。由于每个PC在新空间中形成一个轴(通过原始空间中旧轴的线性组合构建),它告诉我们每个新维度的相对重要性。
作为额外的奖励,请注意SVD也可以用于计算特征分解,因此它也可以用于以不同的方式计算PCA,即通过直接分解协方差矩阵。请参见
this post了解详细信息。