PCA的理解
刚开始听到PCA时,只知道它讲的是对数据进行降维,还以为是直接去掉一些数据特征;这几天看了下网上各位牛人的博客(http://blog.csdn.net/abcjennifer/article/details/8002329以及http://blog.csdn.net/watkinsong/article/details/8234766)后,我才知道原来它只是把原来的数据映射到新的空间中进行表示,即测试样本通过转换,映射到这个空间中进行表示,并没有对原来的数据进行删减。所以我们要保存住这个空间坐标转换矩阵,把测试样本同样地转换到相同的坐标空间中。
为了解释PCA的过程,下面引用百度百科里面的解释:
对于一个训练集,100个对象模板,特征是10维,那么它可以建立一个100*10的矩阵,作为样本。求这个样本的协方差矩阵,得到一个10*10的协方差矩阵,然后求出这个协方差矩阵的特征值和特征向量,应该有10个特征值和特征向量,我们根据特征值的大小,取前四个特征值所对应的特征向量,构成一个10*4的矩阵,这个矩阵就是我们要求的特征矩阵,100*10的样本矩阵乘以这个10*4的特征矩阵,就得到了一个100*4的新的降维之后的样本矩阵,每个特征的维数下降了。
对上面的解释进行总结如下(假定数据样本为n×p矩阵,p为维数):
(1)计算协方差矩阵Σ,Σ为一个p×p的实对称矩阵。
注意:如果使用matlab自带的cov函数,它会先对x进行去均值操作,即每一列减去该列的均值,详情可参考博客http://bl