studio similitud resueltos means matriz mano jerarquico hacer ejercicios ejemplo dendrograma como cluster bietapico analisis r hclust

similitud - Lista de agrupamiento para la función hclust



k means en r ejemplo (2)

Usaré el conjunto de datos disponible en R para demostrar cómo cortar un árbol en el número deseado de piezas. El resultado es una tabla.

Construye un objeto hclust.

hc <- hclust(dist(USArrests), "ave") #plot(hc)

Ahora puedes cortar el árbol en tantas ramas como quieras. Para mi próximo truco, dividiré el árbol en dos grupos. Se establece el número de cortes con el parámetro k . Consulte ?cutree y el uso del parámetro h que puede ser más útil para usted (vea cutree(hc, k = 2) == cutree(hc, h = 110) ).

cutree(hc, k = 2) Alabama Alaska Arizona Arkansas California 1 1 1 2 1 Colorado Connecticut Delaware Florida Georgia 2 2 1 1 2 Hawaii Idaho Illinois Indiana Iowa 2 2 1 2 2 Kansas Kentucky Louisiana Maine Maryland 2 2 1 2 1 Massachusetts Michigan Minnesota Mississippi Missouri 2 1 2 1 2 Montana Nebraska Nevada New Hampshire New Jersey 2 2 1 2 2 New Mexico New York North Carolina North Dakota Ohio 1 1 1 2 2 Oklahoma Oregon Pennsylvania Rhode Island South Carolina 2 2 2 2 1 South Dakota Tennessee Texas Utah Vermont 2 2 2 2 2 Virginia Washington West Virginia Wisconsin Wyoming 2 2 2 2 2

Usando el método plot(hclust(dist(x))) , pude dibujar un mapa de árbol de cluster. Funciona. Sin embargo, me gustaría obtener una lista de todos los clústeres, no un diagrama de árbol, porque tengo una gran cantidad de datos (como 150 nodos) y la trama se complica.

En otras palabras, digamos si abc es un clúster y si defg es un clúster, me gustaría obtener algo como esto:

1 a,b,c 2 d,e,f,g

Tenga en cuenta que esto no es exactamente lo que quiero obtener como "salida". Es solo un ejemplo. Solo me gustaría poder obtener una lista de grupos en lugar de un diagrama de árbol. Podría ser un vector, una matriz o simplemente números simples que muestran a qué grupos pertenecen los elementos.

¿Cómo es esto posible?


digamos,

y<-dist(x) clust<-hclust(y) groups<-cutree(clust, k=3) x<-cbind(x,groups)

Ahora obtendrá para cada registro, el grupo de clústeres. También puede subcontratar el conjunto de datos:

x1<- subset(x, groups==1) x2<- subset(x, groups==2) x3<- subset(x, groups==3)