選擇聚類的個數和獲取最終聚類方案

  • NbClust()

NbClust包提供了衆多的指數來肯定一個在聚類分析裏類的最佳數目,但並不能保證得出的結果都同樣,只能作爲選擇聚類個數 K 的參考ide

NbClust()函數函數

a、輸入須要作的 聚類的矩陣或者數據框idea

b、使用的距離測度和聚類方法spa

c、並考慮最小和最大聚類的個數進行聚類code

它返回每個聚類指數,同時輸出建議聚類的最佳數目it

處理養分數據的平均聯動聚類io

library(NbClust)
nc <- NbClust(nutrient.scaled, distance="euclidean", 
              min.nc=2, max.nc=15, method="average")
par(opar)   #還原圖形的設置
table(nc$Best.n[1,])
barplot(table(nc$Best.n[1,]),  #效果圖以下
        xlab="Numer of Clusters", ylab="Number of Criteria",
        main="Number of Clusters Chosen by 26 Criteria")

試着用個數最多的聚類個數最多的(2,3,5,15)並選擇其中一個使得解釋最有意義table

  • 獲取最終的方案
clusters <- cutree(fit.average,k=5)  #cutree把樹狀圖分爲5類

#對類進行可視化和解讀
table(clusters)  # k=5,那麼每類下面幾個觀測值
aggregate(nutrient,by=list(cluster=clusters),median)  #獲取每類的中位數
aggregate(as.data.frame(nutrient.scaled),by=list(cluster=clusters),median) #標準化後的,能夠理解爲兩類的中位數,結果有原始度量和標準度量

plot(fit.average, hang=-1, cex=.8,  #繪圖以下
     main="Average Linkage Clustering\n5 Cluster Solution")
rect.hclust(fit.average, k=5)#疊加5類的解決方案

 

相關文章
相關標籤/搜索