绘制沿特征向量的多元数据

时间:2014-05-30 18:54:54

标签: matlab plot eigenvector

我有一个包含18个样本的数据矩阵,每个样本有12个变量,D(18,12)。我对数据执行k-means聚类以获得3个聚类。我希望在2维中可视化这些数据,特别是沿着与特定矩阵B的最大特征值对应的2个特征向量。因此,我创建了由对应于最大的两个特征值的两个特征向量跨越的平面:

[V,EA]=eig(B);
e1=V(:,11);
e2=V(:,12);
for i=1:12
    E(i,1)=e1(i);
    E(i,2)=e2(i);
end
Eproj=E*E';

其中e1和e2是特征向量,E是包含那些列向量的矩阵。在这一点上,我有点卡住了。 我认识到e1和e2在这个12维空间中是正交的,但我不知道它如何可以减少到二维,所以我可以绘制它。 我相信将数据样本投影到平面上将是:

Eproj*D(i,:) 

对于i = 1 ... 18,但我不知道从这里去哪里绘制我的星团。当我进行投影时,它仍然是12维。

1 个答案:

答案 0 :(得分:2)

主成分分析可以帮助您使用特征向量将数据转换为2D。

coeff = princomp(B);
Bproj = B * coeff(:,1:2);
figure
plot(Bproj(:,1),Bproj(:,2),'*')

如果您有标签,可以使用"散布"功能更好的视觉效果。或者您可以将维度降低到3并使用" scatter3"功能