首页 > 解决方案 > 如何使用 R 基于矩阵中的最小距离阈值对元素进行聚类?

问题描述

我有距离矩阵mdist(187x187 项)。我需要根据每个项目的最小值进行集群。我数过那些最小值:

mins = list()
for (i in (1:nrow(mdist))) {
  md = min(mdist[i,-c(i)])
  mins <- rbind.data.frame(mins, list(id=i, dist=md))
}

当我检查最大的整体max(mins$dist)时,它是 4。

现在我希望将这些项目分组。虽然我将阈值设置为 5,但我希望得到一个集群。

hc <- hclust(as.dist(mdist), method="complete")
x <- cutree(hc, h=5)

但是当我申请时length(unique(x)),它需要 103 个集群。

我想我做错了方法还是什么?如何强制簇数低于此类矩阵的最大值?

标签: rmatrixcluster-computingdistance-matrix

解决方案


推荐阅读