我想在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