R:Silhouette 函数结果 table

R: Silhouette function results in table

有没有办法在 table 中接收 R 中轮廓函数的结果,显示 1) 簇的数量和 2) 每个簇的平均轮廓宽度?

剪影功能将返回您需要的一切。只需捕获它并以您想要的任何方式对其进行总结。这是一个使用内置虹膜数据的示例。

library(cluster)
Iris_KM3 = kmeans(iris[,1:4],3)
SIL = silhouette(Iris_KM3$cluster, dist(iris[,1:4]))

aggregate(SIL[,3], list(SIL[,1]), mean)
  Group.1          x
1       1 0.07624005
2       2 0.49471909
3       3 0.62148628

如果您 运行 上面的代码,请尝试只输入 SILstr(SIL) 以查看函数为您提供的内容。

您可以使用 summary() 函数查看 silhouette() 函数的所有详细信息以进行聚类分析。我将遵循@G5W 的回答。您还可以获得每个集群中的观察数量。

library(cluster)
Iris_KM3 <- kmeans(iris[,1:4],3)
SIL <- silhouette(Iris_KM3$cluster, dist(iris[,1:4]))
summary_SIL <- summary(SIL)
cluster_SIL <- t(rbind(summary_SIL[["clus.sizes"]], summary_SIL[["clus.avg.widths"]]))
colnames(cluster_SIL) <- c("No. of Obs", "Avg. Silh. Width")