PCA算法的三种求解形式对比
前段时间回顾PCA算法时,发现存在三种不同的求解形式。一种是直接通过求解中心化后的样本数据 X c e n t e r X_{center} Xcenter的SVD分解得到映射向量;一种是先求出 X c e n t e r X_{center} Xcenter的协方差矩阵 C C C,然后计算对称矩阵 C C C的特征分解,最后得到映射向量;最后一种(也是常用的一种)也是先求出 X c e n t e r X_{center} Xcenter的协方差矩阵 C C C,然后计算对称矩阵 C C C的SVD分解,最后得到映射向量。当时很困惑到底应该用哪种,哪种是最正确的做法,因此对相关的知识点进行了梳理,也就有了这篇笔记。
根据牵涉到的知识点,这篇笔记将先介绍随机变量的数字特征(期望、方差等)以及数理统计中常用的统计量(样本均值、样本方差),接着介绍特征值、特征向量和特征分解,然后介绍SVD分解,最后分析PCA的三种求解形式之间的关系。
均值和方差
随机变量的数字特征
设 X , Y X,Y X,Y都是一维随机变量。
数学期望: E [ X ] E[X] E[X]
方差: D [ X ] = V a r [ X ] = E [ ( X − E [ X ] ) 2 ] = E [ X 2 ] − ( E [ X ] ) 2 D[X]=Var[X]=E[(X-E[X])^2]=E[X^2]-(E[X])^2 D[X]=Var[X]=E[(X−E[X])2]=E[X2]−(E[X])2
协方差: C o v ( X , Y ) = E [ ( X − E [ X ] ) ( Y − E [ Y ] ) ] = E [ X Y ] − E [ X ] E [ Y ] Cov(X,Y)=E[(X-E[X])(Y-E[Y])]=E[XY]-E[X]E[Y] Cov(X,Y)=E[(X−E[X])(Y−E[Y])]=E[XY]−E[X]E[Y]. 反应 X X X与 Y Y Y相互间关系。
相关系数: ρ X Y = C o v ( X , Y ) D [ X ] ⋅ D [ Y ] \rho_{XY}=\frac{Cov(X,Y)}{\sqrt{D[X]\cdot \sqrt{D[Y]}}} ρXY=D[X]⋅D[Y]Cov(X,Y)
协方差矩阵(对称阵):
C = [ C o v ( X , X ) C o v ( X , Y ) C o v ( Y , X ) C o v ( Y , X ) ] C= \left[ \begin{matrix} Cov(X,X) & Cov(X,Y) \\ Cov(Y,X) & Cov(Y,X) \\ \end{matrix} \right] C=[Cov(X,X)Cov(Y,X)Cov(X,Y)Cov(Y,X)]
数理统计中常用统计量
设 X i , Y i X_i, Y_i Xi,Yi都是一维数据,即 X i X_i Xi只有一个特征。
样本均值: X ‾ = 1 N ∑ i = 1 N X i \overline{X}=\frac{1}{N}\sum_{i=1}^{N}X_i X=N1∑i=1NXi
样本方差: S 2 = 1 N − 1 ∑ i = 1 N ( X i − X ‾ ) 2 S^2=\frac{1}{N-1}\sum_{i=1}^{N}(X_i-\overline{X})^2 S2=N−11∑i=1N(Xi−X)2
协方差: C o v ( X , Y ) = 1 N − 1 ∑ i = 1 N ( X i − X ‾ ) ( Y i − Y ‾ ) Cov(X,Y)=\frac{1}{N-1}\sum_{i=1}^{N}(X_i-\overline{X})(Y_i-\overline{Y}) Cov(X,Y)=N−11∑i=1N(Xi−X)(Yi−Y)
协方差矩阵的计算类似。
上述公式也是机器学习中计算 μ , σ 2 \mu,\sigma^2 μ,σ2的基本公式。
对多维样本(样本具有多个特征),令 X X X为包含 m m m个 n n n维样本 x ( i ) x^{(i)} x(i)的样本集。则:
X = [ x ( 1 ) T x ( 2 ) T ⋮ x ( m ) T ] = [