PCA-3 通过奇异值分解来求主成分

Posted 丘文波

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PCA-3 通过奇异值分解来求主成分相关的知识,希望对你有一定的参考价值。

这篇读书笔记介绍一下如何通过奇异值分解来求解样本主成分

1. 问题的变形

样本 X X X的主成分求解,归结于求样本矩阵 X X X的协方差矩阵 S X S_{X} SX 的特征值和对应的单位特征向量。其中
S X = 1 n − 1 X X T S_{X}=\\frac{1}{n-1} X X^{\\mathrm{T}} SX=n11XXT

令:
X ′ = 1 n − 1 X T X^{\\prime}=\\frac{1}{\\sqrt{n-1}} X^{\\mathrm{T}} X=n1 1XT

则:
S X = X ′ T X ′ S_{X}=X^{\\prime \\mathrm{T}} X^{\\prime} SX=XTX

所以问题转化为求矩阵 X ′ T X ′ X^{\\prime \\mathrm{T}} X^{\\prime} XTX 的特征值和对应的单位特征向量。

矩阵的奇异值分解有这样一个性质:
设矩阵 A A A 的奇异值分解为 A = U Σ V T A=U \\Sigma V^{\\mathrm{T}} A=UΣVT, 则有
A T A = V ( Σ T Σ ) V T \\begin{aligned} A^{\\mathrm{T}} A &=V\\left(\\Sigma^{\\mathrm{T}} \\Sigma\\right) V^{\\mathrm{T}} \\\\ \\end{aligned} ATA=V(ΣTΣ)VT
其中的正交矩阵 V V V的每一列是 A T A A^{\\mathrm{T}} A ATA的特征向量, Σ T Σ \\Sigma^{\\mathrm{T}} \\Sigma ΣTΣ 矩阵对对角线上的元素是 A T A A^{\\mathrm{T}} A ATA的特征值。
对称矩阵 A T A A^{\\mathrm{T}} A ATA 的特征分解(特征向量和特征值)以由矩阵 A A A 的奇异值分解矩阵表示。

假设 X ′ X^{\\prime} X 的截断奇异值分解为 X ′ = U Σ V T X^{\\prime}=U \\Sigma V^{\\mathrm{T}} X=UΣVT, 那么 V V V 的列向量就是 S X = X ′ T X ′ S_{X}=X^{\\prime \\mathrm{T}} X^{\\prime} SX=XTX的单位特征向量

**因此, V V V 的每一个列向量对应 X X X 的一个主成分。**于是,求 X X X 主成分可以通过求 X ′ X^{\\prime} X 的奇异值分解来实现。具体算法如下。

对矩阵 X ′ X^{\\prime} X进行截断奇异值分解,保留K个奇异值,奇异向量,得到
X ′ = U S V T X^{\\prime}=U S V^{\\mathrm{T}} X=USVT
V的每一列对应一个主成分,得到k*n 样本主成分矩阵Y
Y = V T X Y=V^{\\mathrm{T}} X Y=VTX

参考资料

  • 《统计学习方法》第15章,奇异值分解
  • 《统计学习方法》第16章 , 主成分分析

以上是关于PCA-3 通过奇异值分解来求主成分的主要内容,如果未能解决你的问题,请参考以下文章

PCA-3 通过奇异值分解来求主成分

PCA(主成分分析)+SVD(奇异值分解)+区别

机器学习从特征分解,奇异值分解到主成分分析

机器学习——降维(主成分分析PCA线性判别分析LDA奇异值分解SVD局部线性嵌入LLE)

特征值与奇异值的基础知识

主成分分析法(PCA)(含SVD奇异值分解)等降维(dimensionality reduction)算法-sklearn