关于PCA降维的理解

首先,简单的介绍下PCA:

PCA即机器学习里面经提到的主成分分析(Principal Component Ayalysis),一般用来对高维数据进行压缩,提取低维特征。 首先我们看下面这幅图

第一幅图,假设二维平面内的六个点,我们想要寻找一个一维空间,将二维空间的点投影在一维空间里,使得点与点之间的分离性最好。从图中可以看到最佳投影方向大概是45°角的方向。第二幅图是一些三维空间的点,同样我们想找一个低维空间,使得三维数据投影在低维空间后,分离性最好。图中可知最好的低维空间是x1_x2平面。对于我们平时所处理的数据,通常都是成千上万维,而PCA的目的就是寻找一个低维空间将这些高维数据投影在低维空间里,使得在低维空间里这些数据具有良好的分离性。也就是说PCA最直接的目的是要寻找这样的一个低维空间,那么怎么去寻找这样的一个低维空间呢。具体数学方法如下:

      假设我们有M*N²维人脸图片(M是样本数,每个样本的像素是N*N),对于每张图片我们可以拉成N²维的向量。下面直接贴出数学公式:

       



这是M. Turk 和 A. Pentland那篇论文对PCA的分析,初次看有些晦涩,下面我来说下我自己对PCA整个数学流程的理解:

suppose we have m samples,each is n dimension

step1: compute the mean of every feature μj = Σm Xj(i)/m   (Xj(i)表示第i个样本的第j维特征的value)

step2:feature scaling and mean normalization  Xj(i)= (Xj(i)j)/sj

这样我们就得到了每一个样本向量归一化的向量 Xj, 接下来我们就要去寻找最佳投影的低维空间


step3: compute the covariance matrix (求协方差矩阵 Σ是n*n的矩阵)    

step4: compute the eigenvalues and eigenvectors(这里我们利用svd分解求特征值和特征向量) Σ = USV' (其中S是和Σ一样的n*n维的矩阵, U和V是酉矩阵, U和V也是n*n的矩阵

下面是一段数学分析:

ΣΣ' = USV'*VS'U' = U(ΣΣ')U'
Σ'Σ = VS'U'*USV' = V(Σ'Σ)V'
U是ΣΣ'的特征向量矩阵;V是Σ'Σ的特征向量矩阵,都是n*n的矩阵
从分析中我们知道U=V且, U是特征向量组成的正交矩阵


step5:descending sort the n eigenvalue and select the k most biggest.

                                

    这样我们就得到了一个n*k维的特征空间(由上分析可知U是一个正交矩阵,所以k个最大特征值对应的eigenvectors也是正交的,k个最大的eigenvectors也就是新的维数空间的k个基,这样我们就找到了一个低维的特征空间

    对于任意给定的特征(xi)将其投影在新的低维空间里就是: (zi就是我们得到的将维之后的特征由原来的n维降为k维)对于我们给定的人脸图片由于每一张图片是n²*1维所以得到的酉矩阵U是n²*k 得到降维后的维数就是k维。


    同样如果我们知道了降维后的特征要想还原为原有特征,则xi = U*zi即可








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值