前言:仅个人小记
一、简要介绍PCA降维思想
对角化并引出正交矩阵Q
A T A = P Λ P − 1 = Q Λ Q T {A}^{T}A=P\Lambda {P}^{-1} = Q\Lambda {Q}^{T} ATA=PΛP−1=QΛQT其中,A是m*n的矩阵,A的每一个列向量代表着一个数据样本,即A是由n个m维度的数据样本构成的数据矩阵。 Λ \Lambda Λ是对角矩阵,且对角线上的值按降序摆放。Q是规格为nXn的正交矩阵。
借助正交矩阵Q进行降维
Q
T
A
T
A
Q
=
Λ
{Q}^{T}{A}^{T}AQ=\Lambda
QTATAQ=Λ
(
A
Q
)
T
A
Q
=
Λ
{(AQ)}^{T}AQ=\Lambda
(AQ)TAQ=Λ
从Q中挑选前k个特征向量,即k个较大特征值对应的特征向量。构成k维度空间,将原来n维度的数据投影到这个k维度空间,k<n,从而实现降维,示意如下,

二、PCA 示例
前提: 规格为25*25的图像,图像的每个像素视为一个维度,即每张图像有625个维度。将图像拉直成一个625维度的向量。由4000张图像(不同字体的字母a构成),现在希望将图片从625维度降维到3维度。或者说找出3个最重要的维度。

PCA降维处理如下,

将图像按降维后得到的结果,标注在三维空间上(简陋绘制三维坐标),效果如下图,

放大一点的截图,

三、SVD 在PCA中辅助作用
SVD推导过程可见之前文章 https://blog.csdn.net/qq_25847123/article/details/79358598
A
=
U
Σ
V
T
A = U\Sigma {V}^{T}
A=UΣVT
A
T
A
=
V
Σ
T
U
T
U
Σ
V
T
=
V
Σ
T
Σ
V
T
{A}^{T}A=V{\Sigma}^{T}{U}^{T}U\Sigma {V}^{T}=V{\Sigma}^{T}\Sigma{V}^{T}
ATA=VΣTUTUΣVT=VΣTΣVT此处对应着PCA中
A
T
A
=
P
Λ
P
−
1
=
Q
Λ
Q
T
{A}^{T}A=P\Lambda {P}^{-1} = Q\Lambda {Q}^{T}
ATA=PΛP−1=QΛQT即,对应关系为,
A
T
A
=
Q
Λ
Q
T
=
V
Σ
T
Σ
V
T
{A}^{T}A=Q\Lambda {Q}^{T}=V{\Sigma}^{T}\Sigma{V}^{T}
ATA=QΛQT=VΣTΣVT
Λ
=
Σ
T
Σ
\Lambda ={\Sigma}^{T}\Sigma
Λ=ΣTΣ其中,V和U都是正交矩阵。
故而,做完了SVD,得到的矩阵V就是PCA中想要的矩阵Q,故而可以通过解SVD进而完成PCA的任务。