每种 SVD 模式解释的每列的变化百分比

机器算法验证 主成分分析 svd
2022-04-19 03:58:49

我对数据矩阵执行了奇异值分解 (SVD)。每列的平均值为零。可以衡量的分数之一是每种模式解释的总变化的百分比。

评估每列中每种模式解释的变化量的正确方法是什么

理想情况下,我也想对新数据集使用此度量,即评估这些模式在“未见”数据中解释了多少变化,类似于执行 SVD 的数据。

1个回答

如果你的奇异值分解是那么由第 i 对 SVD 向量(第 i 个 SVD“模式”)解释的总体方差量R 2,其中是奇异值(的对角线)。这也可以计算为 rank-1 重构的范数与原始数据矩阵的范数之比:其中并且

X=USV,
iiR2=si2/jsj2sjS
R2=uisivi2X2=si2jsj2,
uiviiUV相应地(并且所有范数都是 Frobenius 范数)。

如果您对第k列中由模式i解释的方差量感兴趣,那么您可以使用相同的方法并将其定义为 rank-1 重建中的范数或该列与原始数据,即R^2 = \frac{\|\mathbf u_i s_i v_{ik}\|^2}{\|\mathbf x_k\|^2}=\frac{ s_i^2 v_{ik}^2 }{\|\mathbf x_k\|^2},其中\mathbf x_k\mathbf X的第k(所以是第k个特征,而不是第k个数据点)。ik

R2=uisivik2xk2=si2vik2xk2,
xkkXkk