有没有一种简单的方法来计算在给定最小大小的情况下产生分组的
在这个例子中,如果我想要每个群集至少有十个成员,我应该选择
由于拆分的高度在
请注意,这是一个比Cutting dendrogram into n trees with minimum cluster size in R简单的问题;在这里,我没有指定树的数量,只指定了最小簇大小。非常感谢。
cut
中最低h
值?在这个例子中,如果我想要每个群集至少有十个成员,我应该选择
h = 3.80
:# using iris data simply for reproducible example
data(iris)
d <- data.frame(scale(iris[,1:4]))
hc <- hclust(dist(d))
plot(hc)
cut(as.dendrogram(hc), h=3.79) # produces 5 groups; group 4 has 7 members
cut(as.dendrogram(hc), h=3.80) # produces 4 groups; no group has <10 members
由于拆分的高度在
hc$height
中给出,我可以使用hc$height + 0.00001
创建一组候选值,然后循环遍历每个切割点。但是,我不知道如何从dendrogram
类中解析出簇大小members
。例如,cut(as.dendrogram(hc), h=3.80)$lower[[1]]$members
返回NULL
,而不是期望的66。请注意,这是一个比Cutting dendrogram into n trees with minimum cluster size in R简单的问题;在这里,我没有指定树的数量,只指定了最小簇大小。非常感谢。
attr(cut(as.dendrogram(hc), h=3.80)$lower[[1]], "members")
返回66。 - lukeA