¿Qué es la agrupación jerárquica?

Autores

Joshua Noble

Data Scientist

¿Qué es la agrupación jerárquica?

El clustering jerárquico es un algoritmo de machine learning no supervisado que agrupa los datos en un árbol de clústeres anidados. Los principales tipos incluyen aglomerantes y divisivos. El análisis de clústeres jerárquicos ayuda a encontrar patrones y conexiones en conjuntos de datos. Los resultados se presentan en un diagrama de dendrograma que muestra las relaciones de distancia entre los clústeres.

La agrupación en clústeres es una técnica de aprendizaje automático no supervisado que se utiliza en el análisis de datos para detectar y agrupar objetos similares. El análisis de clústeres jerárquicos (HCA), o clústeres jerárquicos, agrupa objetos en una jerarquía de clústeres sin imponer un orden lineal dentro de ellos. Muchas disciplinas, como la biología, el análisis de imágenes y las ciencias sociales, utilizan métodos de agrupación jerárquica para Explorar y reconocer clúster en conjuntos de datos. Los casos de uso incluyen la categorización de poblaciones en investigación clínica, la segmentación de clientes y la detección de comunidades de nodos en modelos de red.

Hay dos tipos de clústeres jerárquicos:

- Enfoque aglomerativo o de abajo hacia arriba1 que fusiona repetidamente grupos en otros más grandes hasta que surge un solo clúster.

- Enfoque divisivo o descendente quecomienza con todos los datos en un solo clúster y continúa dividiendo clústeres sucesivos hasta que todos los clústeres son singletons.

El análisis de clúster jerárquico tiene altos costos computacionales. Si bien el uso de un montón puede reducir el tiempo de cálculo, aumentan los requisitos de memoria. Tanto el tipo de agrupamiento divisivo como el aglomerativo son "codiciosos", lo que significa que el algoritmo decide qué clústeres fusionar o dividir al hacer la elección localmente óptima en cada etapa del proceso. También es posible aplicar un criterio de parada, en el que el algoritmo detiene la aglomeración o la división de clústeres cuando alcanza un número predeterminado de clústeres.

A menudo se utiliza un diagrama en forma de árbol llamado dendrograma3 para visualizar la jerarquía de los clústeres. Muestra el orden en que se fusionaron o dividieron los clústeres y muestra la similitud o distancia entre los puntos de datos. Los dendogramas también pueden entenderse como una lista anidada de listas4 con atributos.

Diagrama de dispersión de los puntos A a F a la izquierda y dendrograma resultante a la derecha

Cómo funciona la agrupación en clústeres jerárquica

Los algoritmos de agrupamiento jerárquico utilizan el concepto de matriz de disimilitud para decidir qué clústeres fusionar o dividir. La disimilitud es la distancia entre dos puntos de datos medida por un método de vinculación elegido. Los valores en una matriz de disimilitud expresan:

- La distancia5, una distancia euclidiana como ejemplo, entre puntos individuales en un conjunto

- Un criterio de agrupación por vínculos, que especifica la disimilitud como una función de las distancias entre pares de puntos a través de conjuntos.

Métodos de vinculación

Exploremos los métodos de vinculación de distancia euclidiana más comunes. Ejemplos de otras métricas de distancia que se pueden utilizar incluyen la distancia de Minkowski, Hamming, Mahalanobis, Hausdorf y Manhattan. Tenga en cuenta que cada método de vinculación genera diferentes clústeres a partir del mismo conjunto de datos. La selección del método de agrupación en clústeres de vinculación adecuado depende de factores como el tipo de datos que se agrupan, la densidad de los datos, la forma del clúster y si hay valores atípicos o ruido en el conjunto de datos.

Enlace mínimo (único)

El método de enlace único analiza las distancias por pares entre los elementos de dos clúster y luego utiliza la distancia mínima entre los clúster. El método min maneja bien las formas de clúster no elípticas, pero se verá afectado por el ruido y los valores atípicos. Tiene una limitación conocida como efecto de encadenamiento6. Unos pocos puntos que crean un puente entre un par de clústeres pueden dar como resultado que los dos clústeres se fusionen en uno solo. Los criterios mínimos de vinculación se pueden representar como:

 mina∈A,b∈Bd(a,b)

donde A y B son dos conjuntos de observaciones y d es una función de distancia.

Vinculación máxima (completa)

Las distancias de los clústeres también se pueden calcular en función de los puntos que están más alejados entre sí. El método max es menos sensible que el método min al ruido y los valores atípicos, pero usarlo puede sesgar los resultados cuando hay cúmulos globulares o grandes. El enlace máximo a menudo produce más clústeres esféricos que el enlace mínimo. El enlace máximo se puede representar en la fórmula:

 maxa∈A,b∈Bd(a,b)

donde A y B son dos conjuntos de observaciones y d es la distancia.

Enlace medio

Estos métodos, introducidos por Sokal y Michener, definen la distancia entre clústeres como la distancia promedio entre pares en todos los pares de puntos de los clústeres. El algoritmo puede ser el método de grupo de pares no ponderados con media aritmética (UPGMA) o el método de grupo de pares ponderados con media aritmética (WPGMA). El significado de "no ponderado" aquí es que todas las distancias contribuyen por igual a cada promedio.

UPGMA está representado por la fórmula

 1∣A∣·∣B∣∑a∈A∑b∈Bd(a,b)

donde *A* y *B* son dos conjuntos de observaciones y *d* es la distancia.

WPGMA está representado por la fórmula

 d(i∪j,k)=d(i,k)+d(j,k)2

donde ij son los clústeres más cercanos que se combinan en cada paso para formar un nuevo clúster de la unión de ij. Luego podemos calcular la distancia a otro clúster k, que es la media aritmética de las distancias promedio entre los puntos de datos en k e i y k y j.

Enlace centroide

Aquí, usamos la distancia entre los centros de los clústeres o centroides. La distancia entre centroides se calcula mediante una función de distancia:

∥μA-μB∥2

donde μA es el centroide de A y μB es el centroide de B.

Método de varianza mínima de Ward

Joe H. Ward introdujo el método8 del aumento mínimo de la suma de cuadrados (MISSQ) en la década de 1960. Cada punto de datos comienza en su propio clúster. Este enfoque significa que la suma de cuadrados entre los puntos de datos es inicialmente cero y luego aumenta a medida que fusionamos los clústeres. El método de Ward minimiza la suma de las distancias al cuadrado de los puntos desde los centros de los clústeres a medida que se fusionan. El método de Ward es una buena opción para variables cuantitativas9 y se ve menos afectado por el ruido o los valores atípicos. Se puede representar como:

 ∣A∣·∣B∣A∪B∥μA-μB∥2=∑x∈A∪B∥x-μA∪B∥2-∑x∈A∥x-μA∥2-∑x∈B∥x-μB∥2

donde la media de A y la media de B son los centroides de A y B respectivamente, y x es un punto de datos que pertenece a la unión de A y B

Algoritmo de Lance-Williams

El método de varianza mínima de Ward se puede refinar utilizando un algoritmo de Lance-Williams. Estos algoritmos utilizan una fórmula recursiva para actualizar las distancias de los clústeres y encontrar el par de clústeres más cercano óptimo para fusionar.

Pasos de clustering aglomerativo

En el agrupamiento jerárquico aglomerativo, también conocido como anidamiento aglomerativo (AGNES), cada punto de datos comienza como un clúster. El algoritmo utiliza un criterio de agrupamiento de vinculación seleccionado basado en una matriz de disimilitud para decidir qué par de clústeres unir. El algoritmo sube la jerarquía y sigue emparejando clústeres hasta que todo se haya vinculado, creando una serie jerárquica de clústeres anidados. En términos generales, los pasos de clustering aglomerativo10 son:

1. Calcular la matriz de disimilitud empleando una métrica de distancia particular.

2. Asignar cada punto de datos a un clúster.

3. Fusionar los clústeres en función de un criterio de vinculación para la similitud entre clústeres.

4. Actualizar la matriz de distancias.

5. Repetir los pasos 3 y 4 hasta que quede un solo clúster o se cumpla cualquier criterio de detención.

Pasos de clustering divisivos

Los principios detrás de la agrupación jerárquica divisiva fueron desarrollados por Macnaughton-Smith y otros11 en 1964 y explorar más a fondo por Kaufman y Rousseeuw con su algoritmo DIANA (Divisive ANAlysis clúster)12 en 1990. La agrupación divisiva utiliza el enfoque opuesto a la agrupación aglomerativa. Todos los puntos de datos comienzan en un único clúster que se divide repetidamente en más clústeres. La división se produce hasta que todos los clústeres restantes son singletons o se cumple un criterio de detención, como un número predefinido de clústeres. Los métodos divisivos son mejores para identificar grandes clústeres13 y pueden ser más precisos que los métodos aglomerativos porque el algoritmo considera toda la distribución del conjunto de datos desde el inicio del proceso.

Para mejorar la eficiencia, los métodos divisivos utilizan algoritmos de agrupamiento plano, como k-means, para dividir el conjunto de datos en clústeres. El número de clústeres debe especificarse por adelantado. El algoritmo k-means divide los clústeres minimizando la suma de cuadrados dentro del clúster entre los puntos del centroide. Esto se conoce como el criterio de inercia14. Los pasos de agrupamiento divisivo15 son:

1. Comience con todos los puntos de datos para un conjunto de datos de tamaño N (d1, d2, d3... dN) en un clúster.

2. Divida el clúster en dos clústeres diferentes o heterogéneos utilizando un método de agrupación plana como el algoritmo de medias k.

3. Repita el paso 2, eligiendo el mejor clúster para dividir y eliminando los valores atípicos del clúster menos cohesivo después de cada Iterations.

4. Deténgase cuando cada ejemplo esté en su propio clúster único; de lo contrario, repita el paso 3.

Las últimas tendencias de IA presentadas por expertos

Obtenga insights curados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM .

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

Interpretación de los resultados del clustering jerárquico

Los resultados de los clústeres suelen presentarse en un dendograma (estructura de árbol binario). El eje x en el dendrograma representa los puntos de datos y el eje y, o la altura de las líneas, muestra qué tan separados estaban los clústeres cuando sefusionaron.

Puede usar un dendrograma para decidir cuántos clústeres16 habrá en su modelo de agrupamiento final. Una estrategia es identificar el punto de corte natural en el árbol donde las ramas disminuyen y se alargan. Alternativamente, el número de clústeres viene dado por el número de líneas verticales cruzadas cuando una línea horizontal corta el dendrograma.

En la imagen de ejemplo que se muestra aquí, la línea horizontal H1 corta dos líneas verticales. Esto muestra que hay dos clústeres en este punto del proceso: un clúster con los puntos 5, 8 y 2 y un clúster con los puntos restantes. Cuanto más se pueda mover la línea horizontal hacia arriba o hacia abajo sin cortar otras líneas horizontales en el dendrograma, mejor será la selección de este número de clústeres para su modelo de agrupamiento. En el siguiente ejemplo, la línea horizontal H2 selecciona cuatro clústeres. H2 no puede moverse hacia arriba y hacia abajo tanto como H1 antes de cortar otras líneas horizontales. Este escenario muestra que la opción de dos clústeres (H1) es probablemente más apropiada para su modelo de agrupación en clústeres.

El diagrama de dendrograma, trazando puntos de datos (eje x) y la altura de las líneas muestra qué tan separados estaban los clústeres cuando se fusionaron (eje y) Corte de un dendrograma con líneas horizontales para determinar el número de grupos

Un modelo de agrupamiento robusto17 crea clústeres con alta similitud intraclase y baja similitud interclase. Sin embargo, puede ser difícil definir la calidad del clúster, y su selección de criterios de vinculación y números de clúster puede afectar significativamente sus resultados. Por lo tanto, al crear un modelo de agrupación en clústeres, pruebe diferentes opciones y seleccione las que mejor le ayuden a explorar y revelar patrones en el conjunto de datos para su consideración futura. Los factores a considerar18 incluyen:

- El número de clústeres que son prácticos o lógicos para el conjunto de datos (dado el tamaño del conjunto de datos, las formas del clúster, el ruido, etc.)

- Estadísticas, como los valores medio, máximo y mínimo para cada clúster

- La mejor métrica de disimilitud o criterio de vinculación a aplicar

- El impacto de cualquier valor atípico o variable de resultado

- Cualquier conocimiento específico sobre un dominio o conjunto de datos

Otros métodos para ayudar a determinar el número óptimo de clústeres19 incluyen:

- El método del codo, donde se grafica la suma de cuadrados dentro del clúster contra el número de clústeres y se determina el "codo" (el punto donde el gráfico se nivela)

- Estadística de brechas, donde se compara la suma real de cuadrados dentro del clúster con la suma esperada dentro del clúster de cuadrados para una distribución de referencia nula e identifica la brecha más grande.

Mixture of Experts | 28 de agosto, episodio 70

Decodificación de la IA: Resumen semanal de noticias

Únase a nuestro panel de ingenieros, investigadores, responsables de producto y otros profesionales de talla mundial que se abren paso entre el revuelo de la IA para ofrecerle las últimas noticias e insights al respecto.

Casos de uso para el clustering jerárquico

El clustering jerárquico proporciona a los científicos de datos conocimientos sobre la estructura y las relaciones dentro de los conjuntos de datos y se puede aplicar en varios casos de uso.

Negocio

El clustering jerárquico puede ayudar a analizar tendencias y segmentar los datos de los clientes; por ejemplo, agrupándolos por elección de producto, demografía, comportamiento de compra, perfil de riesgo o interacciones con las redes sociales.

Investigación clínica y bioinformática

Las cohortes de pacientes para la investigación clínica pueden llegar a miles. La agrupación jerárquica ayuda a categorizar poblaciones mixtas en grupos más homogéneos20 utilizando, por ejemplo, criterios de diagnóstico, respuestas fisiológicas o mutaciones de ADN. También se puede aplicar para agrupar especies por características biológicas para comprender el desarrollo evolutivo.

Procesamiento de imágenes e información

El clustering jerárquico se utiliza en aplicaciones de reconocimiento de texto basadas en imágenes para agrupar caracteres escritos a mano por su forma. También se utiliza para almacenar y recuperar información utilizando ciertos criterios o para categorizar los resultados de búsqueda.

Implementación de clústeres jerárquicos en Python o R

Tanto Python como el lenguaje de programación R se utilizan ampliamente en la ciencia de datos. Python es flexible y puede manejar un amplio espectro de tareas. Alternativamente, R está diseñado específicamente para computación estadística y proporciona opciones ricas para visualizar su análisis de clústeres jerárquicos.

Python proporciona la función AglomerativeClúster21 (consulte también los ejemplos de agrupamiento aglomerativo22 en sklearn), y SciPy proporciona una función para trazar dendrogramas23. Paquetes como dendextend24 mejoran la funcionalidad del dendrograma de R, mejorando el análisis de sensibilidad y permitiéndole comparar y manipular diferentes dendrogramas. Para una experiencia práctica, consulte nuestros tutoriales paso a paso: cómo implementar la agrupación en clústeres jerárquica en Python y cómo implementar la agrupación en clústeres jerárquica en R.

Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste y despliegue IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de próxima generación para creadores de IA. Diseñe aplicaciones de IA en menos tiempo y con menos datos.

Descubra watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA a trabajar en su negocio con la experiencia en IA líder en la industria y la cartera de soluciones de IBM a su lado.

Explore las soluciones de IA
Consultoría y servicios de IA

Reinvente los flujos de trabajo y las operaciones críticas añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Conozca los servicios de IA
Dé el siguiente paso

Obtenga acceso único a capacidades que abarcan el ciclo de vida del desarrollo de IA. Produzca potentes soluciones de IA con interfaces fáciles de usar, flujos de trabajo y acceso a API y SDK estándar de la industria.

Explore watsonx.ai Reserve una demostración en vivo
Notas de pie de página

1 Murtagh, F., Legendre, P., “Ward's Hierarchical Agglomerative Clustering Method: Which Algorithms Implement Ward's Criterion?” 2014, J Classif 31, 274–295, https://link.springer.com/article/10.1007/s00357-014-9161-z

 2 Kaufman, L.; Rousseeuw, P. J., Finding Groups in Data: An Introduction to clúster Analysis. Wiley. Capítulo 6. Análisis divisivo (Programa DIANA) págs. 253–279, https://onlinelibrary.wiley.com/doi/book/10.1002/9780470316801

3 Galili, T., “Introduction to dendextend,” The Comprehensive R Archive Network, 2023, https://cran.r-project.org/web/packages/dendextend/index.html

4 Lecture Notes from Penn State Eberly College of Science, “Hierarchical Clustering”, https://online.stat.psu.edu/stat555/node/85/

5, 17 Maimon, O., Rokach, L., Data Mining and Knowledge Discovery Handbook, 2010 2nd ed, Springer, https://link.springer.com/book/10.1007/978-0-387-09823-4

6 Sokal, R, Michener, C., “Un método estadístico para evaluar relaciones sistemáticas”, 1958, University of Kansas Science Bulletin, 38: 1409–1438, https://archive.org/details/cbarchive_33927_astatisticalmethodforevaluatin1902/page/n1/ mode/2up

Ward, JH, “Hierarchical Grouping to Optimize an Objective Function,” 1963, Journal of the American Statistical Association, 58 (301): 236–244, https://www.tandfonline.com/doi/abs/10.1080/01621459.1963 .10500845.

8 Lecture Notes from Penn State Eberly College of Science, “Applied Multivariate Statistical Analysis”, https://online.stat.psu.edu/stat505/lesson/14/14.7

9, 15 Shetty P. and Singh S., “Hierarchical Clustering: A Survey,” International Journal of Applied Research, Vol 7 Issue 4, Part C, 2021, https://www.allresearchjournal.com/archives/?year= 2021&vol=7&issue=4&part=C&ArticleId=8484

10 Macnaugton-Smith, P., Williams, W., Dale, M., y colaboradores, “Dissimilarity Analysis: a new Technique of Hierarchical Sub-division,” Nature 202, 1034–1035 (1964), https:// www.nature.com/articles/2021034a0

12 Boehmke, B., Greenwell, B., Hands-On Machine Learning with R, Taylor and Francis, 2020, https://bradleyboehmke.github.io/HOML/

13 Cavalli-Sforza, LL, and Edwards AWF, “Phylogenetic analysis: models and estimation Procedures,” 1967, Evolution 21: 550–570 and Am. J. Hum. Genet. 19: 233–257, https://pmc.ncbi.nlm.nih.gov/articles/pmc1706274/

14 Sci-kit learn 1.3.2, 2.3 Clúster, https://scikit-learn.org/stable/modules/clustering.html

16 Lecture notes from MIT OpenCourseWare, 2017, https://ocw.mit.edu/courses/15-071-the-analytics-edge-spring-2017/pages/clustering/recommendations-worth-a-million-an-introduction -to-clustering/video-5-hierarchical-clustering/

18 Lecture notes from the University of Washington, 2001, https://courses.cs.washington.edu/courses/csep546/04au/pdf-slides/10.pdf

19 Boehmke, B., University of Cincinnati Business Analytics R Programming Guide, https://uc-r.github.io/hc_clustering#algorithms

20 QCBS R Workshop Series, https://r.qcbs.ca/workshop09/book-en/clustering.html

21 Zhongheng Zhang y colaboradores, “Hierarchical cluster analysis in Clinical Research With Heterogeneous Study Population: Highlighting its Visualization with R,” Annals of Translational Medicine. febrero de 2017; 5(4): 75, https://atm.amegroups.org/article/view/13789/14063

22, 23 Scit-kit learn 1.3.2 documentación, https://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html

24 Manual SciPy v1.11.4, https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.dendrogram.html