美梦被梦惊醒 发表于 2019-12-16 15:07:14

聚类分析中的可视化


第一步:安装和加载聚类分析R包-factoextra
library(pacman)
p_load(factoextra)

第二步:导入数据集,采用R语言自带的USArrests
# 导入数据集
data("USArrests")
# 数据集理解
?USArrests
# 数据集检视
head(USArrests)

第三步:数据集准备与处理,对数据集做标准化处理,每列转换为均值为0,标准差为1
df <- scale(USArrests)
head(df, 10)

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

4.1 基于相关系数的距离度量和可视化
res.dist <- get_dist(df, method = "pearson")
head(round(as.matrix(res.dist), 2))[, 1:6]
# 可视化相关系数矩阵
fviz_dist(res.dist, lab_size = 8)


4.2 增强型分层聚类和可视化
res.hc <- eclust(df, "hclust")
fviz_dend(res.hc, rect = TRUE) # 树图
fviz_cluster(res.hc) # 散点图
fviz_silhouette(res.hc) # 轮廓图

分层树图

聚类散点图

轮廓图


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

聚类散点图

不同K值Gap统计图

轮廓图

k均值结果可视化的其他表示方式
p_load(cluster, fpc)
plotcluster(USArrests, res.km$cluster)

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

ximenyan 发表于 2019-12-30 21:32:17

赞一个,谢谢!!

ximenyan 发表于 2019-12-30 21:32:39

:loveliness:,great!

mope 发表于 2021-7-6 13:18:53

学习学习
页: [1]
查看完整版本: 聚类分析中的可视化