Matlab中关于pca函数的说明写得并不直观, 很多人最直接的目的只是想得到pca降维后的结果 ,但是根据官方解释文档,很难一下看出哪个输出参数才是最终降维后的特征。因此,本文记录如何使用Matlab中自带的pca函数对数据进行降维。
PS. 本文并不详解pca的原理,仅仅记录如何使用Matlab中的pca函数。
输入参数:X是n x d的样本矩阵,其中n表示样本数,d表示特征纬度。
输出参数:
(1)coeff是主成分分量,即样本协方差矩阵的特征向量。
(2)score是主成分,即样本X在低维空间的投影,也就是我们想要得到的降维后的数据。
注意:score的维度和原始样本X的维度一致,若需要降到k维,则只需要取score的前k列即可。
此外,也可以根据coeff计算得到score,以下是具体步骤:
(1)计算样本X沿特征纬度的均值向量(因为X的每一列代表一个特征,因此此时是按照行计算均值):
(2) 利用去中心后的X乘上coeff便可以得到score:
运行后便可以看到res的结果非常非常小,此时便说明test和score非常接近。
[1] PCA原理分析和Matlab实现方法(三)
[2] Matlab: princomp() 主成分分析
pca函数主要用于原始数据的主成分分析。
要求主成分系数 X 的矩阵格式为【n×p 】数据矩阵
从你的代码来看,是没有问题的。问题可能出在matlab的版本上,题主给出该函数输出格式,只能在matlab2012b的版本以上使用。如低于该版本的话,你可以用
>>help pca
上述命令得到帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)