У меня есть база данных, на которой я выполнял иерархическую кластеризацию (с agnes()
), и она работала хорошо (я сделал это, как описано здесь: https://uc-r.github.io/hc_clustering. Теперь я хочу сравнить искусственные кластеры или классы в база данных с теми, которые обнаружил иерархическая кластеризация. Я думаю, что я могу сделать это с tanglegram()
. Я не знаю, как генерировать дендрограмму / делать иерархическую кластеризацию, когда у меня уже есть группы. Как я могу рассказать R о группах? Было бы здорово, если бы вы могли ответить на этот методический вопрос. `
set.seed(73)
great <- data.frame(c0=c("r1","r2","r3","r4","r5","r6"),c1=c("0.89","46","0","0.56","12","0"),c2=c("0","0.45","45","79","0.45","4.4"))
#euclidean distance
great_dist <- dist(great)
#agglomerative with agnes()
#wards minimizes total within cluster variance
#minimum between-cluster-distance is merged
hc1_wards <- agnes(great,method ="ward")
#agglomerative coefficient
hc1_wards$ac
hc1_wards_plot <- pltree(hc1_wards, cex = 0.6, hang = -1, main = "Dendrogram\nagglomerative clustering",labels=F)
#cutting into a specific amount of clusters
#average silhouette method
fviz_nbclust(great, FUN = hcut, method = "silhouette")
# Cut tree into 2 groups
great_grp <-
agnes(great, method = "ward")
great_grp_cut <- cutree(as.hclust(great), k = 2)
#using the cutree output to add the cluster each observation belongs to sub
great_cluster <- mutate(great,cluster = great_grp_cut)
#evaluating goodness of cluster with dunn()
#with count() how many obs. in one cluster
count(great_cluster,cluster)
dunn <- clValid::dunn(distance = great_dist,clusters = great_grp_cut)
`
Строки 1,2,4 и 3,5,6 - это искусственные скопления великих.
cl1 <- great[c(1,2,4), ]
cl2 <- great[c(3,5,6, ]
Я хочу сравнить иерархическую кластеризацию и искусственную кластеризацию. Как я могу выполнить дендрограмму с искусственной кластеризацией, чтобы сравнить их с tenglegram()
. Есть ли другой способ сравнить их?