R语言 层次聚类(系统聚类)

层次聚类试图在不同层次对数据集进行划分

  library(NbClust)
 
  data(nutrient, package = 'flexclust')
  row.names(nutrient) <- tolower(row.names(nutrient))
  nutrient.scale <- scale(nutrient)
  d <- dist(nutrient.scale)
  fit.average <- hclust(d,method = "average")
  # 休伯特指数是确定聚类数量的图形方法。 在休伯特指数图中,我们寻求一个显着的膝盖,
  # 这个指标相当于该指标值的显着增加,即休伯特指数第二差异图中的重要峰值。
  # 确定层次聚类的个数,如果是有几个合适的聚类个数,需确定是需要分类的个数少还是分类个数多
  nc <- NbClust(nutrient.scale, distance = "euclidean", min.nc = 2, 
                max.nc = 15, method = "average") # 包NbClust
  table(nc$Best.nc[1,])
  barplot(table(nc$Best.nc[1,]))
  
  # plot
  plot(fit.average, hang = -1,cex = .8)
  rect.hclust(fit.average, k = 5) # 在图上画出聚类个数
  
  # 在确定好层次个数之后计算每个层次的个数
  clusters <- cutree(fit.average, k = 5)
  table(clusters) # 各层次的个数



  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值