PCA原理解析(及最小二乘法)

首先给结论:对于样本矩阵X,XXT;还是X的右奇异矩阵VT的前k近似VkT

一、PCA的实现过程\color{blue}{PCA是通过矩阵变换,将旧的样本点变换到新的矩阵空间中;变换的要求或者目标函数是要使得新样本点的方差最大化!}

具体实施及推导过程

1. 中心化:就是找到所有样本的中心点,并将其作为原点,建立标准正交系(笛卡尔系)

2. 矩阵变换:将矩阵X的样本点变换到新的矩阵空间Wk中:W变换 = WkT*X

3.确立优化目标:变换后的单个样本为WkT* x[i],方差Var[i]=x[i]TWkWkTx[i],我们的目标是要使所有的样本的投影方差和最大,即
image.png

4. 求导:J(W)=tr(WTXXTW+λ(WTW−I))

进而推导出:XXTW = (-λ)W,因此W就是XXT的特征向量构成的矩阵;(-λ)就是XXT特征值构成的对角矩阵。而要得到降维后的矩阵,就

image.png

5. 问题终于转换到了最后一步,寻找XXT的特征向量和特征值,即对XXT进行特征值分解!
image.png

6. 当X维度很大,对XXT进行特征值分解是一个计算很繁琐的过程。因此,我们想要跳过对XXT进行特征值分解的过程,直接求得变换矩阵,此时即用到SVD。下面我们同时进行SVD和PCA的对比:

    1. X为要降维的矩阵,且假设这个矩阵是中心化的.
    1. 对于PCA来说,要求一个协方差矩阵C,C = XXT/(n-1)。对C求特征值分解C = VLVT,V就是特征向量矩阵,L是特征值构成的对角矩阵,VT取前k个特征就是
    1. 直接针对X进行奇异值分解,Xm×n= Um×mSm×nVn×nT ≈ Um×kSk×kVk×nT
    1. 利用C = XXT/(n-1) 和 Xm×n= Um×mSm×nVn×nT
      image.png
    1. 由此我们可以得出特征值矩阵L = 奇异值矩阵S2/(n-1) ⇒ ,即特征值λi = s2i/(n-1);而Vn×nT 就是上述VT,而取Vk×nT作为其近似,即为PCA变换矩阵
    1. SVD用于PCA的意义在于SVD可以避免对XXT求解特征值分解,而SVD除了上述奇异向量的分解法,还有更为高效的迭代求解法,求出右奇异向量后取近似,即可进行PCA变换
      image.png

二、补充基础知识点

2.1 矩阵变换的表示方法
image.png
2.2 为什么要使得“新样本点的方差最大化”?
image.png

如图,方差大的方向,更能够代表样本点的变化趋势,更能够保留原样本的特征。

2.3 PCA和最小二乘的联系?

首先要明确的是,PCA除了可以将优化目标定义为变换后样本的方差最大,还可以定义为原样本点距离变换矩阵所构成的超平面的距离最小,此二者定义是等价的。

2.3.1 最小二乘的目的是要建立样本特征矩阵X--目标Y的所在空间的映射,目标是最小化
image.png
,求导为零后得到W = (XTX)-1XTY,即为所求参数矩阵。
2.3.2 从线性代数的角度理解,无论参数如何,其最终的预测值Xβ都是原样本矩阵X内的一个线性组合;如果要使得Xβ和Y之间的距离最小化;那么Xβ应该等于Y在X平面的投影:Xβ = X(XTX)-1XTY ⇒ β = (XTX)-1XTY

投影公式P = X(XTX)-1XT

2.3.3 最小二乘是直接将Y投影到原样本平面中;而PCA按照SVD的视角,是将原样本矩阵中的点,转换到右奇异矩阵的近似矩阵Vk×nT中,起到对原样本降维的效果。
2.3.4 在利用最小二乘法时,要求 XTX 可逆;如果X的列之间存在多重共线,纵然 XTX 可逆,建立的数学模型,很可能不具有通用性。X的列之间存在多重共线时,利用PCA降维可消除这种共线性的不良影响。

参考目录

奇异值分解(SVD)原理与在降维中的应用
主成分分析(PCA)原理总结
SVD与PCA精简阐述
深入理解SVD与PCA
机器学习白板推导之最小二乘法
最小二乘法及其相关方法的数学原理与类比分析
PCA降维 python实现
协方差矩阵

你可能感兴趣的:(PCA原理解析(及最小二乘法))