绘制 hclust() 的输出

Plotting output from hclust()

我有一个 300x2 的数据矩阵,即 2 个变量的 300 个观察值。使用 R 中的 kmeans 函数,我可以按以下方式绘制结果簇:

data <- scale(data)
fit.kmeans <- kmeans(data, 3)
plot(data, col = fit.kmeans$cluster)

这给出了原始数据的漂亮二维图,按簇着色。是否有使用 hclust 函数执行相同操作的简单方法?或者,是否有另一个函数可以让我实现不同的聚类方法并随后绘制生成的聚类? 提前致谢。

每种聚类方法报告聚类的方式略有不同。通常,您需要查看聚类函数返回的结构。

但是你问的具体hclust。要从 hclust 获取聚类,您需要使用 cutree 函数以及您想要的聚类数。这是将它与 iris 数据一起使用的示例。

HC = hclust(dist(iris[,1:4]))
plot(iris[,3:4], pch=20, col=cutree(HC,3))

聚类树状图是层次聚类散点图的一个很好的替代方法:

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)