¿Qué es el clustering jerárquico?

Autores

Joshua Noble

Data Scientist

¿Qué es el clustering jerárquico?

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.

El clustering es una técnica de machine learning no supervisada utilizada en el análisis de datos para detectar y agrupar objetos similares. El análisis de clúster jerárquico (HCA), o clustering jerárquico, 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 clustering jerárquico 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 clustering jerárquico:

- Enfoque aglomerativo o ascendente1 que fusiona repetidamente los clústeres en otros más grandes hasta que surge un solo clúster.

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

El análisis de clustering jerárquico tiene altos costes computacionales. Aunque el uso de un montón puede reducir el tiempo de cálculo, aumentan los requisitos de memoria. Tanto el tipo de clustering divisivo como el aglomerativo son "codiciosos", lo que significa que el algoritmo decide qué clústeres fusionar o dividir haciendo 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 el que se han fusionado o dividido 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.

Gráfico de dispersión de los puntos A a F a la izquierda y la estructura de árbol dendrograma resultante a la derecha

Cómo funciona el clustering jerárquico

Los algoritmos de clustering 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 de una matriz de disimilitud expresan:

- La distancia5, una distancia euclidiana por ejemplo, entre puntos individuales de un conjunto

- Un criterio de clustering de enlace, que especifica la disimilitud como función de las distancias por pares de puntos entre conjuntos.

Métodos de vinculación

Exploremos los métodos de enlace de distancia euclidiana más comunes. Entre los ejemplos de otras métricas de distancia que se pueden utilizar se incluyen la distancia de Minkowski, Hamming, Mahalanobis, Hausdorf y Manhattan. Tenga en cuenta que cada método de enlace genera diferentes clústeres a partir del mismo conjunto de datos. La selección del método de clustering de enlace 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.

Varillaje mínimo (simple)

El método de enlace único analiza las distancias por pares entre los elementos de dos clústeres y, a continuación, utiliza la distancia mínima entre los clústeres. El método mínimo 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 hacer que los dos clústeres se fusionen en uno. Los criterios de vinculación mínimos 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.

Enlace máx. (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 máximo es menos sensible que el método mínimo al ruido y a los valores atípicos, pero su uso puede sesgar los resultados cuando hay cúmulos globulares o grandes. El enlace máximo suele producir más clústeres esféricos que el enlace mínimo. El enlace máximo se puede representar con 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 media 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í supone que todas las distancias contribuyen por igual a cada promedio.

UPGMA está representada 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 i y j 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. A continuación, podemos calcular la distancia a otro clúster k, que es la media aritmética de las distancias medias entre los puntos de datos en k e i y k y j.

Enlace centroide

Aquí, utilizamos la distancia entre los centros de los clústeres o centroides. La distancia entre centroides se calcula utilizando 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étodo del aumento mínimo de la suma de cuadrados (MISSQ)8 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 clustering 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 clustering de enlace 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 ha 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 utilizando 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 enlace para la similitud entre clústeres.

4. Actualizar la matriz de distancias.

5. Repetir los pasos 3 y 4 hasta que quede un único clúster o se cumpla cualquier criterio de parada.

Pasos de clustering divisivos

Los principios detrás del clustering jerárquico divisivo fueron desarrollados por Macnaughton-Smith y otros11 en 1964 y explorados más a fondo por Kaufman y Rousseeuw con su algoritmo DIANA (Divisive ANAlysis clustering)12 en 1990. El clustering divisivo utiliza el enfoque opuesto al clustering aglomerativo. 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 parada, 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 clustering plano como medias k para dividir el conjunto de datos en clústeres. El número de clústeres debe especificarse por adelantado. El algoritmo de medias k divide los clústeres minimizando la suma de cuadrados dentro del clúster entre los puntos centroides. Esto se conoce como el criterio de inercia14. Los pasos de clustering divisivo15 son:

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

2. Dividir el clúster en dos clústeres diferentes o heterogéneos utilizando un método de clustering plano como el algoritmo de medias k.

3. Repetir el paso 2, elegir el mejor clúster para dividir y eliminar los valores atípicos del clúster menos cohesivo después de cada iteración.

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

Las últimas tendencias en IA, presentadas por expertos

Obtenga conocimientos organizados 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! Está suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. 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 dendrograma (estructura de árbol binario). El eje x del dendrograma representa los puntos de datos y el eje y, o la altura de las líneas, muestra la distancia entre los clústeres cuando se fusionaron.

Puede utilizar un dendrograma para decidir cuántos clústeres16 habrá en su modelo de clustering 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 clustering. 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 clustering.

Diagrama de dendrograma, trazado de puntos de datos (eje x) y la altura de las líneas muestra la distancia entre los clústeres cuando se fusionaron (eje y) Cortar un dendrograma con líneas horizontales para determinar el número de clústeres

Un modelo de clúster robusto17 crea clústers con una alta similitud intraclase y una baja similitud interclase. Sin embargo, puede ser difícil definir la calidad de los clústeres, y su selección de criterios de enlace y números de clústeres puede afectar significativamente sus resultados. Por lo tanto, al crear un modelo de clustering, 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. Entre los factores que se deben considerar 18 se incluyen:

- La cantidad de clústeres que son prácticos o lógicos para el conjunto de datos (tamaño del conjunto de datos dado, formas de los clústeres, ruido, etc.)

- Estadísticas, como los valores medios, máximos y mínimos de cada clúster

- La mejor métrica de disimilitud o criterio de enlace a aplicar

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

- Algún conocimiento de dominio o conjunto de datos específico

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 brecha, en la que se compara la suma de cuadrados real dentro del clúster con la suma de cuadrados esperada dentro del clúster para una distribución de referencia nula e identifica la brecha más grande.

Mixture of Experts | 12 de diciembre, episodio 85

Descifrar 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 bullicio de la IA para ofrecerle las últimas noticias y conocimientos 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 los medios sociales.

Investigación clínica y bioinformática

Las cohortes de pacientes para la investigación clínica pueden llegar a miles. El clustering jerárquico ayuda a categorizar poblaciones mixtas en grupos más homogéneos20 utilizando, por ejemplo, criterios de diagnóstico, respuestas fisiológicas o mutaciones en el ADN. También se puede aplicar para agrupar especies según sus características biológicas con el fin de 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 gestionar un amplio espectro de tareas. Como alternativa, R está diseñado específicamente para la computación estadística y proporciona opciones enriquecidas para visualizar su análisis de clustering jerárquico.

Python proporciona la función AgglomerativeCluster21 (véanse también los ejemplos de clusterings aglomerativos 22 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 clustering jerárquico en Python y cómo implementar clustering clúster jerárquico en R.

Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste e implemente IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de nueva generación para desarrolladores de IA. Cree 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 líder en IA del sector de IBM y junto a su cartera de soluciones.

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

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

Explore los servicios de IA
Dé el siguiente paso

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

Explore watsonx.ai Solicite una demostración en directo
Notas a 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 Cluster Analysis. Wiley. Capítulo 6. Divisive Analysis (Program DIANA) pp. 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 2.ª ed. Springer. https://link.springer.com/book/10.1007/978-0-387-09823-4

6 Sokal, R, Michener, C. “A statistical method for evaluating systematic relationships”. 1958. University of Kansas Science Bulletin. 38: 1409–1438. https://archive.org/details/cbarchive_33927_astatisticalmethodforevaluatin1902/page/n1/mode/2up

Ward, J. H. “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. y Singh S. “Hierarchical Clustering: A Survey,” International Journal of Applied Research. Vol 7 N.º 4. Parte 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., et al. “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, L. L., y Edwards A. W. F. “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 Clustering. 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 et al. “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 documentation. https://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html

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