【问题标题】:Plotting output from hclust()绘制 hclust() 的输出
【发布时间】:2018-10-28 05:38:37
【问题描述】:
我有一个 300x2 的数据矩阵,即 2 个变量的 300 个观察值。使用 R 中的 kmeans 函数,我可以通过以下方式绘制结果簇:
data <- scale(data)
fit.kmeans <- kmeans(data, 3)
plot(data, col = fit.kmeans$cluster)
这给出了原始数据的漂亮 2D 图,按集群着色。有没有使用 hclust 函数做同样事情的简单方法?或者,是否有另一个函数可以让我实现不同的聚类方法并随后绘制结果聚类?
提前致谢。
【问题讨论】:
标签:
r
cluster-analysis
hierarchical-clustering
【解决方案1】:
每种聚类方法报告聚类的方式略有不同。通常,您需要查看聚类函数返回的结构。
但是您特别询问hclust。要从hclust 获取集群,您需要使用cutree 函数以及您想要的集群数量。这是将它与虹膜数据一起使用的示例。
HC = hclust(dist(iris[,1:4]))
plot(iris[,3:4], pch=20, col=cutree(HC,3))
【解决方案2】:
聚类树状图是层次聚类散点图的一个很好的替代方案:
tree <- hclust(d = dist(x = iris[1:50, 1:4], method = "euclidean"))
cl_members <- cutree(tree = tree, k = 3)
plot(x = tree, labels = row.names(tree), cex = 0.5)
rect.hclust(tree = tree, k = 3, which = 1:3, border = 1:3, cluster = cl_members)