如何选择第一个组件并计算PCA的变异百分比?

时间:2015-06-04 19:42:38

标签: matlab pca

我有一个矩阵M,其中列是数据点,行是要素。现在我想做PCA并且只选择具有最高方差的第一个组件。

我知道我可以在matlab中用[coeff,score,latent] = pca(M')来做。首先,我认为我必须转置矩阵M.

如何选择第一个组件?我不确定三种不同的输出矩阵。

其次,我还想计算每个组件所解释的方差百分比。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

实际上,您应该将输入转置为将行作为数据点和列作为要素:

[coeff, score, latent, ~, explained] = pca(M');

主要组件由coeff的列按顺序递减的顺序给出,因此第一列包含最重要的组件。每个组成部分的差异在latent中给出,解释的总方差百分比在explained中给出。

firstCompCoeff = coeff(:,1);
firstCompVar = latent(1);

有关详细信息:pca documentation

请注意,pca函数需要统计工具箱。如果您没有,可以在互联网上搜索替代方案,也可以使用svd自行实施。