我想在Matlab中执行层次聚类并将散点图绘制在散点图上。我已使用evalclusters
函数来首先调查“好”数量的群集将使用不同的标准值,例如Silhouette,CalinskiHarabasz
。下面是我用于评估的代码(x
是我与200周的观察和10个变量数据):如何正确绘制从matlab中的聚类分析生成的聚类?
E = evalclusters(x,'linkage','CalinskiHarabasz','KList',[1:10])
%store kmean optimal clusters
optk=E.OptimalK;
%save the outouts to a structure
clust_struc(1).Optimalk=optk;
clust_struc(1).method={'CalinskiHarabasz'}
然后我用类似的代码我已经在网上找到:
gscatter(x(:,1),x(:,2),E.OptimalY,'rbgckmr','xod*s.p')
%OptimalY is a vector 200 long with the cluster numbers
这是我所得到的:
我的问题可能是愚蠢的,但为什么我只使用了前两列Ø我不明白f数据产生散点图?我意识到,通过使用Optimal Y
这些簇本身正在被合并,但我是否应该不使用x
中的所有数据?
我的问题也可能是愚蠢的,但这个散点图有2个维度,为什么你想需要更多数据?你会用它做什么? – EBH
嗯,原始数据中有更多的数据是200x10,所以我想知道为什么只包含前两个变量? – new2matlab