matlab自带princomp(PCA降维方式)

Posted 一动不动的葱头

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab自带princomp(PCA降维方式)相关的知识,希望对你有一定的参考价值。

matlab 中自带的函数就不必怀疑。

princomp:principal componet analysis (PCA).

[COEFF,SCORE,latent,tsquare]=princomp(X);

参数:

%%%%%%%%%%%%%%%%%%

INPUT: X是数据:n*p,其中n代表样本个数,p代表特征维数

%%%%%%%%%%%%%%%%%%

OUTPUT:

COEFF: 协方差 p*p,投影矩阵

SCORE:投影之后的数据。如果样本个数<=特征维数,有一个有意思的

             现象:SCORE(:,n:p), latent(n:p)都为零。为何呢?请以两个

             数据点为例。即n=2,p=3;当选择了一个投影轴之后,再选一个

             正交的抽,发现无论怎么选,它们投影之后都会重叠,即0。

latent:计算完之后并不是主成分归一化的权重。如果需要,用下面代码:

cumsum(latent)./sum(latent);

 

 

很注意的是:

训练样本计算出来了协方差矩阵。如果来了一个测试集,我们不能再去重新

计算一个协方差矩阵。因为那样会使训练集和测试集投影到不同的空间上,

最终导致特征空间不一致,训练出来的参数毫无意义。

 

以上是关于matlab自带princomp(PCA降维方式)的主要内容,如果未能解决你的问题,请参考以下文章

在matlab中,关于PCA降维运算,求得特征向量矩阵之后,又要如何才能得到我需要的投影矩阵呢?

机器学习笔记----四大降维方法之PCA(内带python及matlab实现)

基于ORL人脸数据库和PCA特征降维算法的人脸识别matlab仿真

人脸识别基于PCA+LDA实现人脸识别matlab 源码

人脸识别基于PCA+LDA实现人脸识别matlab 源码

图像融合基于matlab高分辨率全色图PCA图像融合(含评价指标)含Matlab源码 2407期