参考链接:http://pinkyjie.com/2011/02/24/covariance-pca/
PCA的本质其实就是对角化协方差矩阵。
PCA就是将高维的数据通过线性变换投影到低维空间上去,但这个投影可不是随便投投,要遵循一个指导思想,那就是:找出最能够代表原始数据的投影方法。
“最能代表原始数据”希望降维后的数据不能失真,也就是说,被PCA降掉的那些维度只能是那些噪声或是冗余的数据。
1:冗余,就是去除线性相关的向量(纬度),因为可以被其他向量代表,这部分信息量是多余的。
2:噪声,就是去除较小特征值对应的特征向量,
因为特征值的大小就反映了变换后在特征向量方向上变换的幅度,幅度越大,说明这个方向上的元素差异也越大,换句话说这个方向上的元素更分散。
3:实际上又回到了对角化,寻找极大线性无关组,然后保留较大的特征值,去除较小特征值,组成一个投影矩阵,
对原始样本矩阵进行投影,得到降维后的新样本矩阵。
协方差矩阵,能同时表现不同维度间的相关性以及各个维度上的方差。
协方差矩阵度量的是维度与维度之间的关系,而非样本与样本之间。
4:协方差矩阵的主对角线上的元素是各个维度上的方差(即能量),其他元素是两两维度间的协方差(即相关性)。我们要的东西协方差矩阵都有了,先来看“降噪”,让保留下的不同维度间的相关性尽可能小,也就是说让协方差矩阵中非对角线元素都基本为零。达到这个目的的方式自然不用说,线代中讲的很明确——矩阵对角化。而对角化后得到的矩阵,其对角线上是协方差矩阵的特征值,它还有两个身份:首先,它还是各个维度上的新方差;其次,它是各个维度本身应该拥有的能量(能量的概念伴随特征值而来)。这也就是我们为何在前面称“方差”为“能量”的原因。通过对角化后,剩余维度间的相关性已经减到最弱,已经不会再受“噪声”的影响了,故此时拥有的能量应该比先前大了。看完了“降噪”,我们的“去冗余”还没完呢。对角化后的协方差矩阵,对角线上较小的新方差对应的就是那些该去掉的维度。所以我们只取那些含有较大能量(特征值)的维度,其余的就舍掉即可。
除了PCA,SVD用的比较多,
矩阵奇异值分解(SVD)及其应用
https://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html