Я пытаюсь выяснить, как я могу получить информацию о том, какие кластеры являются «дочерними / потомственными» для «родительских» кластеров. Позвольте мне проиллюстрировать это следующим сюжетом.
Этот график представляет собой обычную дендрограмму с различными решениями для кластеризации. То, что я хотел бы нарисовать, это путь между меньшими кластерами и большими кластерами. Причина, по которой я хочу это сделать, заключается в том, что у меня очень большой набор данных, и у меня есть сложные кластеры, и мне нужно понять, какие кластеры «спускаются» (маленькие кластеры) из больших кластеров.
![enter image description here](https://i.stack.imgur.com/jpuft.png)
# Load data
data(USArrests)
# Compute distances and hierarchical clustering
dd <- dist(scale(USArrests), method = "euclidean")
hc <- hclust(dd, method = "ward.D2")
par(mfrow = c(2,2))
# Plot the obtained dendrogram
plot(hc, cex = 0.6, hang = -1)
rect.hclust(hc, k = 2, border = 2:5)
plot(hc, cex = 0.6, hang = -1)
rect.hclust(hc, k = 4, border = 2:5)
plot(hc, cex = 0.6, hang = -1)
rect.hclust(hc, k = 8, border = 2:5)
plot(hc, cex = 0.6, hang = -1)
rect.hclust(hc, k = 12, border = 2:5)
Например, здесь у меня есть два решения: 2 кластера и 4 кластера. Мне неясно, как я могу узнать, какие кластеры sub_grp2
были отделены от кластеров 2 sub_grp1
(и т. Д.).
# Cut tree into 4 groups
sub_grp1 <- cutree(hc, k = 2)
sub_grp2 <- cutree(hc, k = 4)
sub_grp3 <- cutree(hc, k = 8)
sub_grp4 <- cutree(hc, k = 12)
USArrests$sub_grp1 = sub_grp1
USArrests$sub_grp2 = sub_grp2
USArrests$sub_grp3 = sub_grp3
USArrests$sub_grp4 = sub_grp4
Что я действительно хотел бы нарисовать или извлечь в любом Кстати, это что-то вроде:
![enter image description here](https://i.stack.imgur.com/QcelN.png)
Это действительно помогло бы мне узнать, какие из меньших кластеров «спускаются» из более крупных.
Имеет ли это смысл?