0

我使用matlab的princomp函数来做PCA。 从我的理解,我可以检查潜在的来决定我需要多少维度。我怎么能知道哪些尺寸是主要组成部分?

[coeff, score, latent, t2] = princomp(fdata); 
cumsum(latent)./sum(latent); 

,并通过使用trainMatrix = _系数(:,1:10)(我选择前10个维度),并newData =数据* trainMatrix,我能得到减少的数据。

但是我怎么能找出哪个维度减少了,哪个维度保留了?

我的意思是,如果我有30个功能,可以在princomp之后弄清楚,我保留了哪10个特征(原始数据的列索引)?

谢谢。

回答

1

新的维度对应于原始维度的线性组合,即每个新的特征都是用所有旧的维度来表示的,并且具有不同的权重。

+0

我的意思是,有什么办法可以知道特征值排序结果?例如,我可以确定哪个功能是主要功能。我可以使用coeff矩阵来确定哪个特征具有较大的权重? – 2013-04-25 01:04:45

+0

@FreyaRen:PCA只是在一个新的坐标系统中表达相同的数据,这样第一个维度包含数据中最大的方差,下一个维度垂直并沿着最大的剩余方差定位,依此类推......也许一个诸如此类的可视化可能会帮助您理解它:http://www.mathworks.com/help/stats/biplot.html。当然,你可以将维数截成第一个'k',然后选择'k'来获得足够好的近似值,其中包含原始数据方差的95% – Amro 2013-04-25 13:15:15

相关问题