特征值如何测量 PCA 中主成分的方差?

机器算法验证 机器学习 主成分分析 降维 svd 特征值
2022-04-11 08:55:29

我知道特征值测量沿主成分的方差。

问题

  1. PCA 的特征值和方差如何相同?
  2. 这背后的直觉是什么?
  3. 这个理论背后的数学证明是什么?
2个回答

我们从数据协方差矩阵 ,则 注意的投影,这样

S=E(XXT)E(X)E(X)T
μXμTμ=1
μTSμ=μT(E(XXT)E(X)E(X)T)μ=E((μTX)(μTX)T)E(μTX)E(μTX)T
μTXXμ

E((μTX)(μTX)T)E(μTX)E(μTX)T=Var(μTX)
由于只是一个数字,所以我们将其表示为,所以我们有 由于,所以 这意味着我们在第一个定义 place实际上是数据协方差矩阵的特征向量,其特征值是数据在该方向上的方差。Var(μTX)λ
μTSμ=λ
μTμ=1
μμTSμ=Sμ=λμ
μ

我想不出一种直观的方式来理解这一点,但一旦你熟悉了数学,我想你会接受这一点。

方差:

方差是与零的偏差的平方,因此向量的总方差是其平方值的总和。 https://en.wikipedia.org/wiki/Variance

特征向量和特征值:

特征向量是捕获构成数据集的固有模式的基向量。按照惯例,这些是单位向量,范数 = 1,因此它们是 1 的线性代数等价物。特征向量成对出现,“左”和“右”。http://mathworld.wolfram.com/Eigenvalue.html

约定(基于数据矩阵作为列矩阵的首选方向)是正确的特征向量(我将使用我熟悉的符号,在谈论 PCA 时用于各种应用领域)是基函数和是各种称为主成分、载荷、潜在因素等的东西。正确的特征向量可以投影到具有相同变量的任何数据集上,因此对于模型构建很有用。LT

左特征向量 ( ) 是每个样本对每个右特征向量的权重,因此可以将其视为原始矩阵线性变换的一系列函数。在实践中,这意味着是赋予每个样本以构建右特征向量的权重,这意味着根据定义,它们代表每个右特征向量在该特定样本中解释的总幅度。SS

LT=SD

对每个样本解释的个体方差求和得出数据集中解释的总方差。

特征值是一组标量,使得线性变换 S 用右特征向量缩放产生与将右特征向量本身乘以该值相同的结果

SLT=λLT

由于线性代数乘法涉及两个被乘数中行和列项的乘积的总和,因此乘以作为线性变换的总方差的标量会得到相同的结果。这意味着特征值是定义的方差。

特征分解和 PCA:

再想一想,我意识到虽然 NIPALS(见下面的原始答案)对于理解 PCA 的计算方式更直观,但 SVD 方法对于理解特征值本身更直观。

在 SVD 中,数据被分解为两组单位向量矩阵,其间有一个诊断标度矩阵。

D=UsvLT

PCA 中的分数矩阵并且是特征向量SUsvL

奇异值与特征值相关为:

sv=ev

请注意,两者之间的这种关系受到https://math.stackexchange.com/questions/127500/what-is-the-difference-between-singular-value-and-eigenvalue中所述的约束

使用 NIPALS 的原始答案:

对我来说,以直观方式理解 PCA 的最佳算法是 NIPALS

https://folk.uio.no/henninri/pca_module/pca_nipals.pdf

使用 NIPALS 方法采取以下步骤

的内积得到协方差矩阵(适当缩放的相关性),其对角线是平方和 DDTD

的初始向量投影到数据上(各种来源建议使用随机样本来执行此操作,我更喜欢平方和的平方根的单位向量)。我将特征向量称为WL

L0T=WD
这给出了主要分量的初始猜测,然后将其投影到数据上以根据初始猜测重建它。
Drecon=WL0T

计算残差并计算其平方和。然后执行 OLS,直到平方和达到预定义的停止标准,每次计算由将更新的权重投影到数据上产生的单位向量。这个单位向量是迭代的主成分或特征向量。DDrecon

在 NIPALS 中,我们从原始数据中减去最终重建的数据,然后使用残差计算 PC2,并始终在迭代后使用最终残差继续到下一个 PC。这意味着由解释的所有方差都被PCiPC>i

最初的乘积是一个范数不等于 1 的向量,因此我们计算向量的范数并用它来将向量缩放为单位向量。WD

创建单位向量的原因是它们在数值上比无约束向量更稳定,并且具有在线性代数乘法和逆矩阵运算中表现相同的良好特性(基本上它们是数字 1 的线性代数等价物)。

PCA 的特征值和方差如何相同?

那么这个用于缩放特征向量的规范是什么?它是向量中系数的平方和的平方根,即方差的平方根。特征值是这个值的平方,即平方和=总方差。

如果特征向量(特征向量)不是单位向量,那么特征值就不是它们的方差,但是由于我们将特征向量定义为单位向量,那么很自然地就会发现它们是数据中该向量的方差。如果我们通过将特征向量投影到数据上来计算分数(请注意,下面的公式仅适用,因为 L 由单位向量组成)

S=LD

然后分数,因为它们已经乘以单位向量,所以采用每个单位向量在数据中捕获的总方差。根据定义,特征值是将矩阵的特征向量映射到矩阵上的标量,即它们缩放向量以便基于特征向量重构原始数据。

这背后的直觉是什么。

这个理论背后的数学证明是什么?

根据上述定义,它们就是这种方式