先上例子:
图1根本看不出是什么分布,将图一的数据进行PCA分析,可以得到图二所示:
PCA过程:
1.特征值分解
2.选择特征值较大的k个所对应的特征向量
3.将原数据减去均值(mXn),协方差为(nXn), 选取的k个特征向量组成的矩阵为EigenVectors(n*k)。那么投影后的数据FinalData为
FinalData(mXk) = DataAdjust(mXn矩阵) x 特征向量(nXk)
但是,还是会丢失一些信息~
PCA的思想是将n维特征映射到k维上(k<n),这k维是全新的正交特征。这k维特征称为主成分,是重新构造出来的k维特征,而不是简单地从n维特征中去除其余n-k维特征。
PCA解释
左边的图L1与L2范围太接近了,不适合降维;如果将坐标轴旋转到右边图所示,那么L1与L2的值相差较大就适合降维。椭圆的长短轴相差得越大,降维也越有道理。
这样的过程就相当于寻找一个旋转矩阵,经过推导,这个旋转矩阵是与特征值有关。
具体推导看reference。
值得注意的是:
PCA是一个无标签的分类,他不考虑数据是否有标签,这样会导致原本可以分开的数据做了PCA后就分不开了。这时候可以用LDA( Linear Discriminant Analysis)
reference:
http://blog.jobbole.com/109015/