我基于'平均链接'执行层次聚类分析,在base r中,我使用
dist_mat <- dist(cdata, method = "euclidean") hclust_avg <- hclust(dist_mat, method = "average")
我想计算间隙统计信息以确定最佳的簇数。我使用“集群”库和clusGap函数。由于我无法通过hclust解决方案,也无法在clusGap函数中指定平均分层聚类,因此我使用以下行:
cluster_fun <- function(x, k) list(cluster = cutree(hclust(dist(x, method = "euclidean"), method="average"), k = k)) gap_stat <- clusGap(cdata, FUN=cluster_fun, K.max=10, B=50) print(gap_stat)
但是,在这里我无法检查群集解决方案。因此,我的问题是-我可以确定间隙统计量是在与hclust_avg相同的解决方案上计算的吗?
是否有更好的方法?
我基于'平均链接'执行层次聚类分析,在基数r中,我使用dist_mat
是的,应该相同。在clusGap函数中,它将为您提供的每个k调用cluster_fun,然后按照paper中的描述计算池内簇的平方和之和。这是在clusGap内部调用的代码,它会调用您的自定义函数: