1. 首页
  2. IT资讯

聚类分析中的可视化

问题提出

当数据没有标签或者有少量标签的时候,我们需要使用聚类分析来发现数据的模式。便于理解聚类分析的结果或者效果,如何对聚类分析做可视化呢?

解决方法

  • 第一步:安装和加载聚类分析R包-factoextra
  1. library(pacman)
  2. p_load(factoextra)
  • 第二步:导入数据集,采用R语言自带的USArrests
  1. # 导入数据集
  2. data("USArrests")
  3. # 数据集理解
  4. ?USArrests
  5. # 数据集检视
  6. head(USArrests)
  • 第三步:数据集准备与处理,对数据集做标准化处理,每列转换为均值为0,标准差为1
  1. df <- scale(USArrests)
  2. head(df, 10)
  • 第四步:聚类分析及可视化。

不管是层次聚类还是划分聚类,都要寻找一个距离度量。然后根据计算后的距离,采用不同的策略进行数据集的汇聚。

4.1 基于相关系数的距离度量和可视化

  1. res.dist <- get_dist(df, method = "pearson")
  2. head(round(as.matrix(res.dist), 2))[, 1:6]
  3. # 可视化相关系数矩阵
  4. fviz_dist(res.dist, lab_size = 8)

聚类分析中的可视化

4.2 增强型分层聚类和可视化

  1. res.hc <- eclust(df, "hclust")
  2. fviz_dend(res.hc, rect = TRUE) # 树图
  3. fviz_cluster(res.hc) # 散点图
  4. fviz_silhouette(res.hc) # 轮廓图

分层树图

聚类分析中的可视化

聚类散点图
聚类分析中的可视化

轮廓图
聚类分析中的可视化

4.3 增强型K均值聚类和可视化

  1. res.km <- eclust(df, "kmeans", nstart = 25) #聚类的散点图
  2. fviz_gap_stat(res.km$gap_stat) # 不同K值下Gap 统计图,指导选择最佳K值
  3. fviz_silhouette(res.km) # 轮廓图,每种聚类下面的分布情况

聚类散点图

聚类分析中的可视化

不同K值Gap统计图

聚类分析中的可视化

轮廓图

聚类分析中的可视化

k均值结果可视化的其他表示方式

  1. p_load(cluster, fpc)
  2. plotcluster(USArrests, res.km$cluster)

聚类分析中的可视化

  1. clusplot(USArrests, res.km$cluster, color=TRUE, shade=TRUE,
  2. labels=2, lines=0)

聚类分析中的可视化

思考题

  • 如何查看聚类结果的详细信息
  • 如何对K均值聚类的中心点做可视化分析

本文来自投稿,不代表程序员编程网立场,如若转载,请注明出处:http://www.cxybcw.com/200716.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code