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=\\frac1n-1 X X^\\mathrmT
SX=n−11XXT
令:
X
′
=
1
n
−
1
X
T
X^\\prime=\\frac1\\sqrtn-1 X^\\mathrmT
X′=n−11XT
则:
S
X
=
X
′
T
X
′
S_X=X^\\prime \\mathrmT X^\\prime
SX=X′TX′
所以问题转化为求矩阵 X ′ T X ′ X^\\prime \\mathrmT X^\\prime X′TX′ 的特征值和对应的单位特征向量。
矩阵的奇异值分解有这样一个性质:
设矩阵 A A A 的奇异值分解为 A = U Σ V T A=U \\Sigma V^\\mathrmT A=UΣVT, 则有
A T A = V ( Σ T Σ ) V T \\beginaligned A^\\mathrmT A &=V\\left(\\Sigma^\\mathrmT \\Sigma\\right) V^\\mathrmT \\\\ \\endaligned ATA=V(ΣTΣ)VT
其中的正交矩阵 V V V的每一列是 A T A A^\\mathrmT A ATA的特征向量, Σ T Σ \\Sigma^\\mathrmT \\Sigma ΣTΣ 矩阵对对角线上的元素是 A T A A^\\mathrmT A ATA的特征值。
即对称矩阵 A T A A^\\mathrmT A ATA 的特征分解(特征向量和特征值)以由矩阵 A A A 的奇异值分解矩阵表示。
假设 X ′ X^\\prime X′ 的截断奇异值分解为 X ′ = U Σ V T X^\\prime=U \\Sigma V^\\mathrmT X′=UΣVT, 那么 V V V 的列向量就是 S X = X ′ T X ′ S_X=X^\\prime \\mathrmT 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^\\mathrmT
X′=USVT
V的每一列对应一个主成分,得到k*n 样本主成分矩阵Y
Y
=
V
T
X
Y=V^\\mathrmT X
Y=VTX
参考资料
- 《统计学习方法》第15章,奇异值分解
- 《统计学习方法》第16章 , 主成分分析
以上是关于PCA-3 通过奇异值分解来求主成分的主要内容,如果未能解决你的问题,请参考以下文章
机器学习——降维(主成分分析PCA线性判别分析LDA奇异值分解SVD局部线性嵌入LLE)
主成分分析法(PCA)(含SVD奇异值分解)等降维(dimensionality reduction)算法-sklearn