R разрезать дендрограмму на группы с минимальным размером
Есть ли простой способ рассчитать минимальное значениеh
вcut
что производит группировки определенного минимального размера?
В этом примере, если я хотел кластеры, по крайней мере, с десятью членами, я должен пойти с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
а затем перебрать порезы на каждом из них. Однако я не вижу, как разобрать размер кластераmembers
внеdendrogram
учебный класс. Например,cut(as.dendrogram(hc), h=3.80)$lower[[1]]$members
возвращаетсяNULL
не 66, как хотелось бы.
Обратите внимание, что это более простой вопрос, чемРазрезание дендрограммы на n деревьев с минимальным размером кластера в R который использует пакетdynamicTreeCut
; здесь я не указываю количество деревьев, просто минимальный размер кластера. TYVM.