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=n−11XXT
令:
X
′
=
1
n
−
1
X
T
X^{\\prime}=\\frac{1}{\\sqrt{n-1}} X^{\\mathrm{T}}
X′=n−11XT
则:
S
X
=
X
′
T
X
′
S_{X}=X^{\\prime \\mathrm{T}} X^{\\prime}
SX=X′TX′
所以问题转化为求矩阵 X ′ T X ′ X^{\\prime \\mathrm{T}} X^{\\prime} X′TX′ 的特征值和对应的单位特征向量。
矩阵的奇异值分解有这样一个性质:
设矩阵 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=X′TX′的单位特征向量。
**因此, 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线性判别分析LDA奇异值分解SVD局部线性嵌入LLE)
主成分分析法(PCA)(含SVD奇异值分解)等降维(dimensionality reduction)算法-sklearn