提问人:user1042343 提问时间:5/31/2014 更新时间:5/31/2014 访问量:679
沿特征向量绘制多变量数据
plotting multivariate data along eigenvectors
问:
我有一个包含 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 维中。
答:
2赞
ssulun
5/31/2014
#1
主成分分析可以帮助您使用特征向量将数据转换为二维数据。
coeff = princomp(B);
Bproj = B * coeff(:,1:2);
figure
plot(Bproj(:,1),Bproj(:,2),'*')
如果您有标签,则可以使用“散点”功能以获得更好的视觉效果。或者您可以将维数降低到 3 并使用“scatter3”函数。
评论