我有一个包含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维的。
发布于 2014-05-31 04:48:33
主成分分析可以帮助您使用特征向量将数据转换为2D。
coeff = princomp(B);
Bproj = B * coeff(:,1:2);
figure
plot(Bproj(:,1),Bproj(:,2),'*')
如果你有标签,你可以使用“散布”功能来获得更好的视觉效果。或者你可以将维数降到3,然后使用"scatter3“函数。
https://stackoverflow.com/questions/23961593
复制相似问题