Clustering

Introducción al Clustering

Conceptos clave sobre clustering y sus aplicaciones

Clustering, o análisis de clusters, es un método de aprendizaje no supervisado utilizado en análisis de datos y Machine Learning que organiza los datos para que los puntos de datos de un mismo grupo (o cluster) sean más similares entre sí que con respecto a los de otros grupos. Clustering ayuda a comprender grandes conjuntos de datos complejos, ya que revela patrones y tendencias, o realiza predicciones sobre datos no etiquetados.

Cómo funciona el clustering

Clustering comprende varios pasos clave: preparación de datos, definición de la medición de similitud, selección del algoritmo de clustering adecuado, y evaluación y optimización de clusters.

Diagrama de flujo de trabajo que muestra los pasos del clustering: preparación de datos, definición de la medición de similitud, selección del algoritmos de clustering y evaluación de clusters.

Pasos clave del clustering.

Clustering implica medir la similitud entre puntos de datos y agruparlos de manera que los datos dentro de un mismo grupo sean más similares entre sí que con los de otros grupos. El concepto de “similitud” varía según el contexto y los datos, y es un aspecto fundamental del aprendizaje no supervisado. La similitud se mide utilizando diferentes métodos, como distancia euclidiana, distancia probabilística, distancia de coseno y correlación.

Resultado de clustering representado en dos dimensiones, donde los clusters se muestran con diferentes colores.

Diagrama de dispersión de datos agrupados en tres clusters creados con la función spectralcluster. (Ver código de MATLAB)

Tipos de algoritmos de clustering

Los algoritmos de clustering se dividen en dos grupos principales:

  • Clustering duro: Cada punto de datos pertenece a un solo cluster, como en el popular método de K-means
  • Clustering suave: Cada punto de datos puede pertenecer a más de un cluster, como en los modelos de mezcla gaussiana
El método de análisis de clusters de <i>K</i>-means muestra clusters discretos de puntos de datos con una estrella en el medio que representa el centroide.

Clustering de K-means representa grupos por su centroide, que es el promedio de cada miembro, representado por las estrellas.

El modelo de mezcla gaussiana muestra dos clusters de puntos de datos con líneas de tipo isobara que representan las probabilidades de pertenencia a un cluster.

Modelo de mezcla gaussiana que asigna probabilidades de pertenencia a un cluster, lo que representa la fuerza de asociación con diferentes clusters.

Existen varios algoritmos de clustering; cada uno con un enfoque único para agrupar datos. Estos métodos varían significativamente en mecánica y casos prácticos ideales. Estos son los algoritmos de clustering utilizados mas comúnmente en Machine Learning:

  • Clustering jerárquico: Crea una jerarquía de clusters multinivel utilizando un árbol de clusters.
  • Clustering de K-means: Divide datos en K clusters distintos en base a la distancia al centroide de un cluster.
  • Modelos de mezcla gaussiana: Forman clusters como una mezcla de componentes de densidad normal multivariante.
  • Clustering espacial basado en densidad (DBSCAN): Agrupa los puntos cercanos entre sí en áreas de alta densidad y realiza un seguimiento de los valores atípicos en regiones de baja densidad. Puede gestionar formas no convexas arbitrarias.
  • Mapas autoorganizados: Utilizan redes neuronales que aprenden la topología y la distribución de los datos.
  • Clustering espectral: Transforma los datos de entrada en una representación basada en grafos donde los clusters están mejor separados que en el espacio de características original. El número de clusters se puede estimar estudiando los valores propios del grafo.
  • Modelos ocultos de Markov: Se pueden utilizar para descubrir patrones en secuencias, genes y proteínas en bioinformática.
  • Fuzzy C-means (FCM): Agrupa los datos en N clusters, y cada punto de datos del conjunto de datos pertenece a todos los clusters con diferentes grados de pertenencia.

Clustering para aprendizaje no supervisado

El aprendizaje no supervisado es un tipo de algoritmo de Machine Learning que se utiliza para extraer inferencias de datos no etiquetados sin intervención humana. La técnica de aprendizaje no supervisado más común es clustering. Aplica algoritmos de clustering para explorar datos y hallar agrupaciones o patrones ocultos sin ningún conocimiento previo de las etiquetas de grupo. Usando estos grupos y patrones, el clustering ayuda a extraer información útil de datos no etiquetados y revela estructuras inherentes dentro de ellos.

La foto original muestra un perro marrón sobre un suelo de baldosas blancas y negras. Utilizando clustering en la imagen procesada, el perro se separa del suelo.

Segmentación de imagen con clustering para separar el suelo de baldosas de fondo.

Por qué clustering es importante

Clustering es un área importante de la inteligencia artificial. Desempeña un papel importante en varios dominios, ya que ofrece información valiosa sobre los datos, y revela patrones y relaciones que no son obvios inmediatamente. Para datos no etiquetados, donde la relación inherente entre los puntos de datos está oculta pero es necesaria para revelar información útil, el uso de clustering ayuda a descubrir esas relaciones y organizar los datos no etiquetados en grupos significativos.

Agrupando elementos similares con clustering, se puede reducir la complejidad de los datos y centrarse en el comportamiento de los grupos en vez de los detalles de cada punto de datos individual. Por tanto, el clustering se puede utilizar para análisis exploratorio de datos y aprendizaje semisupervisado. En este último, el clustering se utiliza como un paso de preprocesamiento previo al aprendizaje supervisado para reducir la cantidad de datos que debe procesar un modelo de Machine Learning y optimizar la precisión del modelado de predicción.

El clustering también se suele utilizar en aplicaciones de detección de anomalías, segmentación de imágenes y reconocimiento de patrones. Más específicamente, el clustering se puede aplicar en las siguientes áreas para identificar patrones y secuencias:

  • Clusters que representan datos en vez de la señal sin procesar en métodos de compresión de datos.
  • Clusters que indican regiones de imágenes y nubes de puntos de LiDAR en algoritmos de segmentación.
  • Clusters que identifican valores atípicos o anomalías dentro de un conjunto de datos.
  • En captura de imágenes médicas, los algoritmos de clustering pueden separar las imágenes en regiones de interés, por ejemplo, para diferenciar entre tejido sano y tumores, o para segmentar el cerebro en materia blanca, materia gris y líquido cefalorraquídeo.
  • En sistemas de información geográfica (SIG), clustering puede analizar imágenes satelitales o fotografías aéreas para identificar el crecimiento urbano o los patrones de uso del suelo, o bien para monitorizar cambios en áreas urbanas a lo largo del tiempo.
  • El clustering genético y el análisis de secuencias se utilizan en bioinformática.
Imagen original de tejido teñido en tonos morados con hematoxilina y eosina, e imagen procesada de tejido segmentado en tres clases.

Izquierda: imagen original de tejido teñido con hematoxilina y eosina. Derecha: MATLAB asignó tres clusters a la imagen para proporcionar una segmentación del tejido en tres clases.

Clustering con MATLAB

Con MATLAB® y Statistics and Machine Learning Toolbox™, puede identificar patrones y características aplicando métodos de clustering preferidos y dividiendo los datos en grupos o clusters. Con Image Processing Toolbox™, puede realizar clustering en datos de imagen.

Preparación de datos

Para obtener resultados de clustering precisos y eficientes, es vital preprocesar los datos y resolver los valores ausentes y atípicos. Puede limpiar y preprocesar los datos de forma programática utilizando funciones integradas o interactivamente con la app Data Cleaner.

Algoritmos de clustering

MATLAB admite todos los algoritmos de clustering populares, que se pueden aplicar con funciones integradas, como la funcion kmeans. Puede utilizar la tarea de Live Editor Cluster Data para realizar clustering jerárquico y K-means interactivamente. Con esta tarea, puede generar código de MATLAB automáticamente para un script en vivo.

También puede realizar clustering de vecinos más cercanos en Simulink utilizando el bloque KNN Search. Este bloque acepta un punto de consulta y devuelve los K puntos vecinos más cercanos en los datos de observación utilizando un objeto de búsqueda de vecinos más cercanos.

Gráfica en 2D que muestra mediciones de anchura y longitud de pétalos de tres especies de lirios, y gráfica que muestra los tres clusters resultantes utilizando clustering de GMM.

Izquierda: diagrama de dispersión de MATLAB de mediciones de pétalos de varios especímenes de tres especies de lirios. Derecha: mediciones de pétalos segmentadas en tres clusters utilizando la técnica de clustering de modelo de mezcla gaussiana (GMM). (Ver el ejemplo de Statistics and Machine Learning)

Visualización y evaluación de resultados de clustering

Cuando los datos no contienen divisiones naturales que indican el número adecuado de clusters, se pueden utilizar diferentes criterios de evaluación, como gap o silueta, para determinar qué tan bien se ajustan los datos a un número particular de clústeres. También puede visualizar los clusters para inspeccionar los resultados del clustering. Por ejemplo, puede utilizar una gráfica de dendrograma para la visualización del clustering.

Todos los puntos de los dos clusters tienen valores de silueta altos (0,8 o más), lo que indica que los clusters están bien separados.

Gráfica de MATLAB creada con la función silhouette que muestra que los datos se dividen en dos clusters de igual tamaño. (Ver código de MATLAB)

Clustering de imágenes

Puede realizar segmentación de imágenes (utilizando la función imsegkmeans) y segmentación de volúmenes (utilizando la función imsegkmeans3) en imágenes realizando clustering de regiones de píxeles basadas en similitudes de color o forma. Puede crear una imagen etiquetada segmentada utilizando un algoritmo de clustering específico. Por ejemplo, para captura de imágenes médicas, puede detectar y etiquetar píxeles en una imagen o vóxeles de un volumen en 3D que representan un tumor en el cerebro u otros órganos de un paciente. Con las herramientas de MATLAB, puede procesar y analizar imágenes para una amplia gama de aplicaciones, desde diagnóstico de enfermedades hasta clasificación del uso del suelo.

Cuatro imágenes en blanco y negro: imagen de prueba, imagen segmentada, detección de tumores e imagen etiquetada.

Detección de tumor cerebral a partir de una imagen de RM utilizando clustering de fuzzy C-means en MATLAB. (Ver el ejemplo de Fuzzy Logic Toolbox)