近期被文章逼疯了,对lsgc算法进行了邻接矩阵的实验。
我想把PCA的方法在这个实验中进行应用,对特征进行降维以加快运算速度,降低系统开销。
matlab有自身的PCA函数,princomp()
学习参考网址:
1.http://www.cnblogs.com/sunwufan/archive/2011/08/31/2159952.html
2.http://blog.sina.com.cn/s/blog_61b8694b0101jg4f.htm
3.http://blog.youkuaiyun.com/mpbchina/article/details/7384425 PCA代码实现
4.http://blog.youkuaiyun.com/watkinsong/article/details/38536463 比较全面的文章,是2作者的整理版
PCA降维的算法原理就是:
假设,样本均为n维
单个减去所有样本的均值,然后求其特征向量,然后根据特征值大小对特征向量进行排序,然后取前若干个主成分维作为样本的新向量,并得到样本得降维矩阵。
因此,进行测试时,对测试样本乘降维矩阵进行降维前,要先减去训练样本的均值。
更明确的讲:matlab自带pca函数princomp(),在对测试样本进行降维时,测试样本要先减去训练样本得均值。