选择聚类的个数和获取最终聚类方案

  • 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类的解决方案

 

相关文章
相关标签/搜索