我知道如何在数学上计算 PCA 和 SVD,而且我知道两者都可以应用于线性最小二乘回归。
SVD 在数学上的主要优势似乎是它可以应用于非方阵。
两者都侧重于分解矩阵。除了提到的 SVD 的优势之外,使用 SVD 而不是 PCA 是否提供了任何其他优势或见解?
我真的在寻找直觉而不是任何数学差异。
我知道如何在数学上计算 PCA 和 SVD,而且我知道两者都可以应用于线性最小二乘回归。
SVD 在数学上的主要优势似乎是它可以应用于非方阵。
两者都侧重于分解矩阵。除了提到的 SVD 的优势之外,使用 SVD 而不是 PCA 是否提供了任何其他优势或见解?
我真的在寻找直觉而不是任何数学差异。
正如@ttnphns 和@nick-cox 所说,SVD 是一种数值方法,而 PCA 是一种分析方法(如最小二乘法)。您可以使用 SVD 进行 PCA,也可以使用 PCA 进行特征分解(或者),或者您可以使用许多其他方法进行 PCA,就像您可以使用十几种不同的算法(如牛顿法或梯度下降或 SVD 等)求解最小二乘法。
因此,SVD 对 PCA 没有“优势”,因为这就像在问牛顿的方法是否比最小二乘法更好:两者没有可比性。
问题实际上是在询问您是否应该在应用 SVD 之前对列进行 Z-score 标准化。这是因为 PCA 是上述变换,然后是 SVD。有时进行标准化是非常有害的。例如,如果您的数据是(转换后的)正数字数,则减去平均值肯定是有害的。这是因为表示文档中没有单词的零将被映射到具有高幅度的负数。在线性问题中,应该使用更高的量级来表示您的特征最敏感的范围。除以标准偏差也对此类数据有害。