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=n11XXT

令:
X ′ = 1 n − 1 X T X^\\prime=\\frac1\\sqrtn-1 X^\\mathrmT X=n1 1XT

则:
S X = X ′ T X ′ S_X=X^\\prime \\mathrmT X^\\prime SX=XTX

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

矩阵的奇异值分解有这样一个性质:
设矩阵 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=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^\\mathrmT X=USVT
V的每一列对应一个主成分,得到k*n 样本主成分矩阵Y
Y = V T X Y=V^\\mathrmT X Y=VTX

参考资料

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

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

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

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

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

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

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

机器学习之主成分分析(手推公式版)