El agrupamiento es una de las ramas más populares del Machine Learning, te explicamos qué es, las distintas familias de algoritmos de agrupamientos y sus aplicaciones.
¿Qué es el Clustering o Agrupamiento en Machine Learning?
El clustering o agrupamiento es una técnica de Machine Learning con la que se divide un conjunto de datos en clusters o grupos, permitiendo juntarlos por su parecido. Es una técnica de aprendizaje no supervisado, pues se basa en estimar los grupos, y no en aprender a clasificar unas clases predefinidas.
¿Para qué se Utiliza el Agrupamiento de Datos?
En un sentido abstracto, el clustering se utiliza para lo siguiente:
- Generalizar los datos: se puede utilizar el agrupamiento para poder caracterizar los datos por su grupo.
- Detectar estructuras en los datos: al formar grupos de datos similares, se detectan parecidos entre los puntos, permitiendo una mayor comprensión de sus relaciones al analizar sus patrones.
Aplicaciones del Clustering
Si nos referimos a las aplicaciones concretas del agrupamiento, tenemos algunas tan distintas como las siguientes:
- Comprimir información: al poder, por ejemplo, agrupar los píxeles de una imagen por grupos de colores, se puede utilizar el grupo de cada uno para reconstruir la imagen, de forma que solo hay que guardar el grupo de cada píxel y la correspondencia entre grupo y color.
- Crear perfiles de personas: se incluye a cada una en un grupo, permitiendo realizar un tratamiento personalizado. Por ejemplo, ofrecer productos distintos o conocer su probabilidad de convertirse en terroristas, al pertenecer a un grupo de alto riesgo de radicalización.
- Crear recomendadores: de forma similar a la anterior, Netflix y otras empresas utilizan el clustering para encontrar contenido similar al que nos ha gustado, en función de lo que otros usuarios de nuestro cluster ha disfrutado anteriormente.
Tipos de Agrupamiento de Datos
Los distintos algoritmos de agrupamiento se clasifican en familias según las técnicas que utilicen:
Agrupamientos Jerárquicos
En el agrupamiento jerárquico, se crean distintos agrupamientos consecutivos, de forma que se tiene una secuencia entre la que elegir el mejor agrupamiento. Existen dos grupos según sus estrategias:
- Divisivos: se basan en comenzar con un cluster que contenga todos los datos y se subdivide en cada paso en grupos más pequeños hasta llegar a que cada punto tenga su propio cluster.
- Aglomerativos: se empieza en un agrupamiento en que cada punto pertenece a un cluster propio, y se fusionan progresivamente hasta tener un único grupo.
Los más utilizados son los aglomerativos, pues tienen menor coste computacional.
Agrupamientos Particionales
En el agrupamiento particional, se parte de un conjunto de datos que se pretende dividir en un número de grupos o clusters conocido. Por ello, se busca el agrupamiento que mejor los separe, utilizando algoritmos tan conocidos como K-Means o Fuzzy C-Means.
Los algoritmos de agrupamiento particional se dividen en dos subtipos:
- Hard clustering o agrupamiento rígido: son algoritmos que asignan a cada dato un solo grupo.
- Soft clustering o agrupamiento difuso: asignan a cada dato una probabilidad de pertenencia a cada grupo, de forma que se tiene la intercidumbre de cada asignación.
Agrupamientos Espectrales o Basados en Grafos
Estos son, probablemente, los agrupamientos más difíciles de comprender. Utilizan propiedades matemáticas de la rama de la teoría espectral de grafos. Sus pasos son:
- Crear un grafo a partir de los datos. Esto se puede hacer con los k vecinos más proximos o uniendo todos los puntos que estén a menos de una distancia elegida.
- Se obtiene la Matriz Laplaciana L del grafo. Esta matriz se forma a partir de los pesos entre nodos del grafo, y después se normaliza.
- Se obtienen los autovalores de la Laplaciana (1 por cada fila o columna, pues L es simétrica). Con ellos, se obtiene el número de clusters k.
- Se obtienen los primeros k autovectores de la Laplaciana. Estos formarán las columnas de una nueva matriz, por lo que se reduce la dimensión a k.
- Sobre esta nueva matriz se aplica otro algoritmo de agrupamiento.
Aunque parezca una técnica de reducción de la dimensión, el agrupamiento espectral permite captar clusters que no sean esféricos y tengan distribuciones más «exóticas», como anillos, en los que fallan los agrupamientos particionales y jerárquicos.
Agrupamientos Basados en Densidades
Estos algoritmos utilizan la densidad de puntos de cada zona del espacio de datos para determinar a qué grupo pertenece cada punto.
El más famoso de esta familia es DBSCAN, que utiliza conceptos nuevos como puntos centrales, frontera y de ruido para describir si están en el centro de un cluster, en su borde o si no es difícil asignarles uno, respectivamente.
También es muy conocido OPTICS, que permite solucionar algunos de los problemas de DBSCAN, aunque no proporciona un agrupamiento como tal.
Agrupamientos Probabilísticos
Estas técnicas se basan en dar una distribución de probabilidad a los datos de cada cluster. Más tarde, se estiman los parámetros de cada distribución. Con ello, se estima la región sobre la que se deberían situar los puntos de cada grupo, lo que permite analizar mejor los clusters superpuestos o solapados, un problema en el que la mayoría de algoritmos de agrupamiento fallan.
Preguntas Frecuentes
Un cluster es un conjunto de datos agrupados por un algoritmo de Machine Learning por tener características similares.
Es una divisón en clusters de los datos, de forma que cada uno pertenece a un único grupo. En notación matemática se le conoce como partición Γ del conjunto de datos S.
Una matriz de disimilaridad o diferencias es una matriz con las distancias entre los puntos de un conjunto de datos. Se utiliza en Machine Learning para realizar un agrupamiento, incluyendo en cada cluster puntos que tengan distancias bajas.
El Teorema de Imposibilidad de Kleinberg
Terminamos con un teorema muy interesante que existe dentro del agrupamiento de datos, propuesto por Jon Kleinberg. Este dice que, para cualquier conjunto de más de 2 puntos, siempre hay al menos una condición de las siguientes que no se cumple:
- Invarianza al escalado: si se multiplican todas las características de todos los datos por una constante α (se escalan los datos), se obtiene el mismo agrupamiento.
- Riqueza: para un mismo algoritmo, cambiando la función de distancia d utilizada para medir las diferencias entre puntos (Euclídea, Manhattan, distancia del coseno…) se puede conseguir cualquier agrupamiento posible con los datos.
- Consistencia: si se reducen las distancias entre puntos de un cluster y se aumentan las distancias entre puntos de diferentes clusters, se consigue el mismo agrupamiento como resultado.
Ningún algoritmo de agrupamiento cumple una de estas 3 propiedades. Por tanto, las distintas familias de algoritmos se diferencian en cuál de ellas incumplen, en favor de las otras dos.
Después de este último detalle un poco más teórico (que no es necesario para comprender el clustering, pero es interesante conocer), esperamos que hayas entendido mucho mejor en qué consiste el agrupamiento de datos. Compártelo con otras personas para que aprendan contigo, y déjanos un comentario con cualquier duda que tengas. ¡Nos vemos!