网上资料非常多,大部分都是讲先求协方差,协方差怎么求的,但是没有讲为什么要求协方差,为什么要选特征值最大的特征,特征值最大到底代表了什么含义。
简单回忆:
计算协方差到底是选行还是选列呢,记住协方差矩阵是计算不同维度间的协方差,不是两个样本间的,所以我们求协方差的目的就是计算不同纬度之间的相关性,并选出特征值最大的前多少个纬度,把特征值小的纬度去掉,起到一个降维的作用
PCA定义: ,表示特征列X 与 特征列Y之间的相关性。
假设刚开始有一堆如下所示的数据
这堆数据的协方差矩阵就是一个单位矩阵
如果我们想把这样一堆数据变成如下所示,此时协方差矩阵已经变成,而这个矩阵的特征值为1和5 特征向量分别为[-1,1] 与 [1,1], 标准正交基为[-1/2,1/2] 与 [1/2,1/2],下图可以看做是上图经过了旋转与缩放两个变换而来,D` = RSD,R为旋转矩阵,S为缩放矩阵,因为 且 (S为对角矩阵、R为正交矩阵),所以D`的协方差矩阵为 (D`减去均值乘以D`的转置再除以N-1),另一方面通过对协方差矩阵进行特征值分解可以得,V为特征向量,L为特征值,对L开根号,即L=SS,,所以说特征向量就是对图像做一个旋转的操作,而特征值就是做一个缩放的操作。
从另一个角度来看N个特征向量就是N个标准正交基,而特征值的模则代表矩阵在每个基上的投影长度。特征值越大,说明矩阵在对应的特征向量上的方差越大,功率越大,信息量越多。
最大特征值对应的特征向量,总是指向数据最大方差的方向,并由此确定其方位。次特征向量总是正交于最大特征向量