Algoritmos de agrupamiento

Veamos con rapidez los tipos de algoritmos de agrupamiento en clústeres y cuándo debes elegir cada uno.

Cuando elijas un algoritmo de agrupamiento en clústeres, debes considerar si el algoritmo escala a tu conjunto de datos. Los conjuntos de datos en el aprendizaje automático pueden tener millones de ejemplos, pero no todos los algoritmos de agrupamiento en clústeres escalan de manera eficiente. Muchos algoritmos de agrupamiento en clústeres calculan la similitud entre todos los ejemplos. Esto significa que su entorno de ejecución aumenta como el cuadrado de la cantidad de ejemplos \(n\), indicado como \(O(n^2)\) en notación de complejidad. \(O(n^2)\) Los algoritmos no son prácticos cuando la cantidad de ejemplos es de millones. Este curso se centra en el algoritmo k-means, que tiene una complejidad de \(O(n)\), lo que significa que el algoritmo se escala de manera lineal con \(n\).

Tipos de agrupamiento en clústeres

Existen varios enfoques para el agrupamiento en clústeres. Para obtener una lista completa, consulta Una encuesta integral sobre los algoritmos de agrupamiento en clústeres Xu, D. y Tian, Y. Ann. Data. Sci. (2015) 2: 165. Cada enfoque es más adecuado para una distribución de datos en particular. A continuación, se presenta una breve discusión sobre cuatro enfoques comunes, que se enfocan en el agrupamiento en clústeres basado en centroides mediante k-means.

Agrupamiento en clústeres basado en centroides

El agrupamiento en clústeres basado en centroides organiza los datos en clústeres no jerárquicos, a diferencia de los agrupamientos en clústeres jerárquicos que se definen a continuación. k-means es el algoritmo de agrupamiento en clústeres basado en centroides más usado. Los algoritmos basados en centroides son eficientes, pero sensibles a las condiciones y valores atípicos iniciales. Este curso se centra en k-means porque es un algoritmo de agrupamiento en clústeres eficiente, efectivo y simple.

Ejemplos agrupados en clústeres mediante agrupamiento en clústeres basado en centroides.
           Las líneas muestran bordes entre clústeres.
Figura 1: Ejemplo de agrupamiento en clústeres basado en centroides.

Agrupamiento en clústeres basado en la densidad

El agrupamiento en clústeres basado en la densidad conecta áreas de alta densidad de ejemplo en clústeres. Esto permite distribuciones arbitrarias, siempre y cuando se puedan conectar áreas densas. Estos algoritmos tienen dificultades con los datos de las distintas densidades y dimensiones. Además, por diseño, estos algoritmos no asignan valores atípicos a los clústeres.

Ejemplos agrupados en dos clústeres con clústeres basados en densidades. Los clústeres no se pueden separar de forma lineal.
Figura 2: ejemplo de agrupamiento en clústeres basado en densidad.

Agrupamiento en clústeres basado en la distribución

En este enfoque de agrupamiento en clústeres, se supone que los datos están compuestos por distribuciones, como distribuciones gaussianas. En la Figura 3, el algoritmo basado en distribución agrupa los datos en tres distribuciones gaussianas. A medida que aumenta la distancia desde el centro de distribución, la probabilidad de que un punto pertenezca a la distribución disminuye. Las bandas muestran esa disminución de la probabilidad. Si no conoces el tipo de distribución en tus datos, debes usar un algoritmo diferente.

Ejemplos agrupados en clústeres mediante la distribución. El sombreado de la densidad de los ejemplos en cada clúster muestra cómo se asignan los clústeres a las distribuciones.
Figura 3: Ejemplo de agrupamiento en clústeres basado en la distribución.

Agrupamiento en clústeres jerárquico

El agrupamiento en clústeres jerárquico crea un árbol de clústeres. No es de extrañar que el agrupamiento en clústeres jerárquico sea adecuado para datos jerárquicos, como las taxonomías. Consulta Comparación de 61 Escherichia coli Genomes de Oksana Lukjancenko, Trudy Wassenaar y Dave Ussery para ver un ejemplo. Además, otra ventaja es que puedes elegir cualquier cantidad de clústeres si cortas el árbol en el nivel correcto.

Animales agrupados mediante un árbol jerárquico
Figura 4: Ejemplo de un árbol jerárquico de agrupación de animales.