J'ai créé une classification et divisé le jeu de données iris en trois classes. Par la suite, je voudrais lier les classes (couleurs) aux observations de l'ensemble de données. J'ai essayé d'utiliser une fonction cutree
. En conséquence, j'ai des classes de 1 à 3 et des branches de 1 à 3, mais elles ne sont pas les mêmes - la première classe est la troisième branche, la deuxième classe est la première branche et la troisième classe est la seconde branche. Comment puis-je lier correctement les classes de sortie (basées sur cutree
) et les branches d'une parcelle?Comment lier une branche de dendrogramme à une classe?
> library('dendextend')
> library('tidyverse')
> iris <- datasets::iris
> iris2 <- iris[,-5]
> d_iris <- dist(iris2)
> hc_iris <- hclust(d_iris, method = "complete")
> dend <- as.dendrogram(hc_iris)
> dend <- color_branches(dend, h = 3.5)
> dend <- color_labels(dend, h = 3.5)
> plot(dend)
> cuts <- cutree(dend, h=3.5)
> data_frame(class=cuts, obj=as.numeric(names(cuts))) %>%
+ group_by(class) %>%
+ summarise(n())
# A tibble: 3 × 2
class `n()`
<int> <int>
1 1 50
2 2 72
3 3 28
> plot(cut(dend, h=3.5)$upper)