主成分anaylsis,得到的系数告诉我什么?

时间:2017-04-04 09:29:06

标签: matlab pca coefficients

我正在尝试应用主成分分析,以减少数据的维度。 200x146,200个观察(样本)具有146个特征(维度),每个观察可以属于三个类别之一。我想要做的是可视化数据,以查看在向我的数据添加新样本后类质心如何移动。由于无法绘制如此高维数据,我正在寻找一个可以在几乎独立的类集群中表示我的数据的维度。

我知道PCA计算特征向量的特征值,而特征值代表方差。方差越大,数据分布越多,可视化效果越好。具有最高特征值的特征向量是主成分,然后由PCA找到与该成分正交的轴。 (我是否正确理解了PCA的基本概念?)

但是我不明白,当我使用matlab函数pca()时我得到了什么信息 我得到了系数,但他们告诉我什么以及我如何继续? PCA_CLASS_SCATTERPLOT)&#39 ;;

    data=trndata;
[coeff,score]=pca(data(:,1:end-1));

newinputdata=coeff(:, 1:3)*score(:, 1:3
newinputdata=newinputdata';

class1i=find(data(:,end)==1);
class2i=find(data(:,end)==2);
class3i=find(data(:,end)==3);


class1=newinputdata(class1i,:);
class2=newinputdata(class2i,:);
class3=newinputdata(class3i,:);


x=1;
y=2;
figure;
plot(class1(:,x), class1(:,y),'ro')
hold on
plot(class2(:,x), class2(:,y),'go')
hold on
plot(class3(:,x), class3(:,y),'bo')

1 个答案:

答案 0 :(得分:1)

MATLAB pca()函数使我们能够灵活地提取here所描述的许多有用信息。

如果我们输出一个参数(coeff),它将以146x200矩阵的形式返回加载。现在,如果我们要求两个输出参数.i.e。

[系数_,得分= PCA(X)

我们将获得加载以及相应的得分值。在这里,我们可以通过coeff *得分重建输入数据。

现在,对于降维,您将选择两个输出参数的第n个元素,并执行近似重建为coeff(:,1:n)*得分(:,1:n)'。

我希望它能回答你的问题。