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实现)