Mi IBM Iniciar sesión Suscríbase

¿Qué es la agrupación en clústeres k-means?

26 junio 2024

Autores

Eda Kavlakoglu

Program Manager

Vanna Winland

AI Advocate & Technology Writer

La agrupación de medias K es un algoritmo de aprendizaje no supervisado utilizado para la agrupación en clústeres de datos, que agrupa puntos de datos no etiquetados en grupos o clústeres.

Es uno de los métodos de clustering más populares utilizados en el machine learning. A diferencia del aprendizaje supervisado, los datos de entrenamiento que utiliza este algoritmo no están etiquetados, lo que significa que los puntos de datos no tienen una estructura de clasificación definida.

Aunque existen varios tipos de algoritmos de clustering, incluidos los exclusivos, los superpuestos, los jerárquicos y los probabilísticos, el algoritmo de clustering de medias k es un ejemplo de método de clustering exclusivo o "duro". Esta forma de agrupación estipula que un punto de datos puede existir en un solo clúster. Este tipo de análisis de clústeres se utiliza habitualmente en la ciencia de datos para la segmentación de mercados, la agrupación de documentos, la segmentación de imágenes y la compresión de imágenes. El algoritmo de medias k es un método ampliamente utilizado en el análisis de clústeres porque es eficiente, eficaz y sencillo.

Las medias K son un algoritmo de clustering iterativo basado en centroides que divide un conjunto de datos en grupos similares en función de la distancia entre sus centroides. El centroide, o centro del clúster, es la media o la mediana de todos los puntos dentro del clúster, según las características de los datos.

Diseño 3D de pelotas rodando en una pista

Las últimas novedades e insights sobre IA 


Descubra insights y noticias de expertos sobre IA, la nube y mucho más en el boletín semanal Think. 

¿Cómo funciona la agrupación en clústeres de k-means?

La agrupación de medias K es un proceso iterativo para minimizar la suma de distancias entre los puntos de datos y sus centroides de clúster.

El algoritmo de agrupamiento de medias k funciona categorizando puntos de datos en clústeres utilizando una medida matemática de distancia, generalmente euclidiana, desde el centro del clúster. El objetivo es minimizar la suma de distancias entre los puntos de datos y sus clústeres asignados. Los puntos de datos más cercanos a un centroide se agrupan dentro de la misma categoría. Un valor k más alto, o el número de conglomerados, significa conglomerados más pequeños con mayor detalle, mientras que un valor k más bajo da lugar a conglomerados más grandes con menos detalle.

Inicializar k

El algoritmo de agrupamiento convencional de medias K requiere unos pocos pasos. El primer paso es inicializar centroides, donde es igual a la cantidad de conglomerados elegidos para un conjunto de datos específico. Este enfoque emplea métodos de selección aleatoria o de ejemplificación de centroide inicial.

Asignar centroides

El siguiente paso incluye un proceso iterativo de dos etapas basado en el algoritmo de machine learning de maximización deexpectativas. 1 El paso de expectativa asigna cada punto de datos a su centroide más cercano en función de la distancia (de nuevo, normalmente euclídea). El paso de maximización calcula la media de todos los puntos de cada conglomerado y reasigna el centro del conglomerado, o centroide. Este proceso se repite hasta que las posiciones de los centroides hayan alcanzado la convergencia o se haya alcanzado el número máximo de iteraciones.

El agrupamiento de medias K es simple pero sensible a las condiciones iniciales y los valores atípicos. Es importante optimizar la inicialización del centroide y el número de clústeres k, para lograr los clústeres más significativos. Hay varias formas de evaluar y optimizar los componentes de agrupación del algoritmo mediante el uso de métricas de evaluación y métodos de muestreo de centroide inicial.

Mixture of Experts | Podcast

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.

Métricas de evaluación de clusters

Los clústeres de calidad contienen al menos dos propiedades:

  1. Todos los puntos de datos dentro de un clúster deben ser similares.
  2. Los clústeres deben ser distintos entre sí.

Estas propiedades se logran minimizando la distancia dentro del clúster y maximizando la distancia entre clústeres de todos los puntos de datos en un conjunto de datos. En otras palabras, cuanto más compacto y aislado esté un clúster de otros clústeres, mejor. El objetivo del algoritmo de agrupamiento de medias K es minimizar la suma de errores cuadráticos (SSE).2 Calcular el SSE de la distancia euclidiana al cuadrado de cada punto a su centroide más cercano evalúa la calidad de las asignaciones de clústeres midiendo la variación total dentro de cada clúster.

Las métricas de evaluación de clústeres verifican la calidad y proporcionan diferentes perspectivas para analizar los resultados de la agrupación. Esto ayuda a seleccionar el número óptimo de clústeres y la inicialización del centroide. Las siguientes métricas de evaluación son formas comunes de medir las distancias dentro y entre clústeres en la agrupación.

Inercia

El algoritmo de agrupación de medias K tiene como objetivo elegir los centroides, o centros de agrupación, que minimicen la inercia, una métrica de evaluación que mide lo bien que se agrupó un conjunto de datos basar en métricas de distancia. La inercia se calcula midiendo la distancia entre un punto de datos y su centroide, elevando la distancia al cuadrado y sumando esos cuadrados para cada punto de datos del conglomerado. La suma o valor inercial es la distancia intracluster. Cuanto menor sea la suma, mejor, porque significa que los puntos de datos dentro del clúster son compactos o más similares.3

El índice de Dunn

La segunda propiedad se mide con el índice de Dunn. El índice de Dunn representa la relación entre la distancia mínima entre clústeres y la distancia máxima dentro de clústeres. Los clústeres con una distancia entre clústeres alta indican una mejor calidad porque significa que los clústeres son tan diferentes entre sí como sea posible.4

Optimización del rendimiento de k-means

La optimización es importante cuando se emplea medias K para lograr los mejores resultados de agrupación.

El algoritmo de medias k es no determinista debido a su paso de inicialización aleatorio. Este método implica que si el algoritmo se realiza dos veces con datos idénticos, las asignaciones de clústeres pueden diferir. Para lograr resultados óptimos de clustering, la selección adecuada de los centroides iniciales y el número óptimo de clústeres mejora la precisión y la velocidad del algoritmo de medias k.

Inicialización de los centroides del clúster

Cada grupo está representado por un centroide, un punto de datos que representa el centro del grupo. K-means agrupa puntos de datos similares en grupos minimizando la distancia entre los puntos de datos de un grupo con su centroide o valor medio k. El objetivo principal del algoritmo k-means es minimizar las distancias totales entre los puntos y su centroide de grupo asignado. El algoritmo funciona de forma iterativa y la selección de la partición inicial puede tener un gran impacto en los clústeres resultantes.

La inicialización aleatoria corre el riesgo de producir resultados incoherentes. Existen métodos de inicialización de centroides para mitigar estos riesgos. Un estudio de NUS Computing explica y compara métodos como el popular k-means++ con la inicialización aleatoria.5

K-means ++

Medias K++ es un algoritmo de medias K que optimiza la selección del centroide o centroides iniciales del clúster. Desarrollado por los investigadores Arthur y Vassilvitskii, medias K++ mejora la calidad de la asignación final del clúster.6

El primer paso para la inicialización mediante el método de medias k++ es elegir un centroide del conjunto de datos. Para cada centroide subsiguiente, calcule la distancia de cada punto de datos desde su centro de clúster más cercano. El siguiente centroide se selecciona teniendo en cuenta la probabilidad de que un punto se encuentre a una distancia proporcional del centroide más cercano elegido anteriormente. El proceso ejecuta iteraciones hasta que se haya inicializado el número elegido de centros de clúster.

Este es un tutorial de IBM Developer que emplea el método k-means++ para la inicialización.

Elegir el número óptimo de clústeres

Idealmente, el algoritmo de medias k itera hasta alcanzar el número óptimo de conglomerados. El número máximo de iteraciones se alcanza una vez que los centroides han logrado la convergencia.

El método del codo

Un método para lograr el número óptimo de grupos es el método del codo. El método del codo es un método gráfico para encontrar el número óptimo de clústeres dentro de un algoritmo de agrupación de medias k. Mide la distancia euclidiana entre cada punto de datos y el centro de su clúster y elige el número de clústeres en función de dónde se estabiliza el cambio en la "suma de cuadrados dentro del clúster" (WCSS). Este valor representa la varianza total dentro de cada grupo que se representa en función del número de clústeres.7

El primer paso del método del codo es calcular el WCSS para cada grupo (k). A continuación, el valor del WCSS se traza en el eje Y y el número de clústeres se traza en el eje X. A medida que aumenta el número de clústeres, los puntos de la gráfica deben formar un patrón coherente. A partir de este patrón, se obtiene un rango para el número óptimo de clústeres.8 A la hora de decidir el número de clústeres, tenga en cuenta los costos computacionales. Cuanto mayor sea el número de clústeres, más potencia de procesamiento se necesitará, especialmente con grandes conjuntos de datos.

Este método no es necesariamente el mejor, especialmente para conjuntos de datos con alta dimensionalidad o forma irregular. Otro método para elegir el número óptimo de clústeres es el análisis de la silueta.9

Aplicaciones en machine learning

El algoritmo de agrupamiento de medias K se utiliza en casi todos los dominios e industrias. Generalmente se aplica a datos de machine learning que tienen pocas dimensiones, son numéricos y se pueden dividir fácilmente.

Los investigadores han integrado el clustering de medias K con métodos de aprendizaje profundo como CNN y RNN para mejorar el rendimiento de varias tareas de machine learning como visión por computadora, PNL y muchos otros dominios. A continuación, se muestra una lista de aplicaciones comunes de clustering de medias K

:

Segmentación de clientes: la práctica de dividir a los clientes de una compañía en grupos según características comunes que reflejen similitud. Esta estrategia permite a las compañías dirigir a grupos o clusters específicos de clientes para campañas publicitarias específicas.

Clasificación de documentos: procedimiento para asignar varias categorías a los documentos. Muchas organizaciones utilizan este método para moderar el contenido. Consulte esta documentación de watsonx Discover para crear un clasificador de documentos.

Segmentación de imágenes: técnica de visión artificial que divide una imagen digital en conjuntos distintos de pixeles. Esta investigación analiza cómo se emplean los modelos k-means para ayudar a identificar límites en imágenes médicas.10

Motores de recomendación: las aplicaciones de toda la web utilizan motores de recomendación. El análisis de componentes principales y las técnicas de agrupación de medias k se utilizan para crear recomendaciones de productos para empresas de comercio electrónico.11

Entrenamiento de modelos k-means con python

Para obtener una experiencia práctica de aprendizaje, consulte el tutorial que explica los fundamentos de la realización de clústeres de medias K en Python mediante IBM watsonx Studio en watsonx.ai.

En este tutorial se emplea un módulo de la biblioteca scikit-learn (sklearn) que realiza la agrupación en clústeres de medias K. El módulo incluye técnicas de optimización integradas que son manipuladas por sus parámetros de clase. La clase del módulo tiene el siguiente aspecto:

class sklearn.cluster.KMeans(n_clusters=8*init= 'k-means++'n_init= 'auto'max_iter=300tol=0.0001verbose=0random_state=Ningunocopy_x=Truealgoritmo= 'lloyd')12

Los parámetros incluyen el número de clusters que hay que formar y el número de centroides que hay que generar (n_clusters). Hay dos métodos de inicialización disponibles: medias k++ y aleatorio. También incluye atributos para fijar el número máximo de iteraciones. Cada iteración comienza particionando el conjunto de datos en el valor del parámetro n_clustersparameter.

Estas bibliotecas se emplean para generar un conjunto de datos de prueba y realizar agrupaciones:

importar pandas como pd 
importar sklearn
import matplotlib.pyplot as plt
importar seaborn como sns
Importar Numpy

from sklearn.cluster import KMeans
from sklearn.conjunto de datos import make_blobs
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler

Beneficios y desventajas

Ventajas

Algunos de los beneficios habituales del agrupamiento de medias K en las aplicaciones de machine learning son:

Sencillo: el agrupamiento de medias K es fácil de entender y poner en práctica. Es la técnica de machine learning no supervisada más popular.

Rápido: la agrupación en clústeres de medias K está diseñada con un enfoque iterativo computacionalmente simple. El algoritmo de agrupación en clústeres de medias K es más rápido que el agrupamiento jerárquico que implica la construcción de una estructura de clústeres en forma de árbol y requiere calcular la distancia por pares entre todos los puntos de datos.

Escalable: las medias K también son fácilmente escalables a grandes conjuntos de datos y se generaliza a clústeres de diferentes formas y tamaños, lo que es ideal para el análisis de clústeres. Dado que el algoritmo es tan eficiente desde el punto de vista computacional, es más escalable y adecuado para grandes conjuntos de datos en comparación con otros métodos.

Desventajas

Algunos desafíos comunes asociados con la agrupación de medias k incluyen:

Dependencia de los parámetros de entrada: La agrupación en clústeres de medias K depende de los parámetros de entrada configurados correctamente. La inicialización del centroide y el número de clústeres adecuados es impecable para obtener resultados de clúster significativos. Una inicialización incorrecta del centroide puede provocar un aumento del tiempo de ejecución y asignaciones de clústeres de baja calidad. Se realizaron muchas investigaciones para mejorar el procedimiento de inicialización del centroide para obtener mejores resultados de agrupación en clústeres y un tiempo de convergencia más rápido.

Posible bajo rendimiento en determinados conjuntos de datos: K-means funciona eficazmente cuando el conjunto de datos contiene conglomerados de tamaño similar y no hay valores atípicos ni variaciones de densidad notables. K-means funciona mal cuando el conjunto de datos contiene muchas variaciones o es muy dimensional. Los datos que no se ajustan a ciertos supuestos del conjunto de datos pueden hacer que k-means produzca clusters de baja calidad.13 Por ejemplo, los clusters de tamaño desigual pueden sesgar los centroides hacia los clusters más grandes, lo que provoca sesgos y clasificaciones erróneas entre los clusters más pequeños. Para resolver este problema, k-means puede generalizar empleando modelos probabilísticos como el nodo de mezclas gaussianas.

Impacto significativo de los valores atípico: los valores atípicos tienen un impacto significativo en los resultados de la agrupación en clústeres de medias k. Los diferentes clústeres deben estar muy separados, pero no tanto como para sesgar los puntos de datos. Es importante tener en cuenta las suposiciones de los datos antes de aplica medias K. Las medias K son especialmente sensibles a los valores atípicos, ya que su objetivo es determinar los centroides promediando los valores con un clúster. Esta sensibilidad hace que sea propenso al sobreajuste para incluir estos valores atípicos.

Soluciones relacionadas

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 IBM watsonx a trabajar a escala en su negocio con la experiencia en IA líder del sector 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 Todd K. Moon, "The Expectation Maximization Algorithm, " IEE Signal Processing Magazine, https://ieeexplore.ieee.org/document/543975 (enlace externo a ibm.com)

2 Kevin Arvai, "K-Means Clustering in Python: A Practical Guide," https://realpython.com/k-means-clustering-python/#:~:text=Understanding%20the%20K%2DMeans%20Algorithm,-Conventional%20k%2Dmeans&text=The%20quality%20of%20the%20cluster,point%20to%20its%20closest%20centroid. (link resides outside ibm.com)

3 "Clustering: K-Means," https://www.codecademy.com/learn/dspath-unsupervised/modules/dspath-clustering/cheatsheet (link resides outside ibm.com)

4 "Dunn Index," https://ruivieira.dev/dunn-index.html (enlace externo a ibm.com)

5 Xiangyuan, Siyuan, Hao, "A survey on k-means initialization methods," https://www.comp.nus.edu.sg/~arnab/randalg20/HLW.pdf (enlace externo a ibm.com)

6 Arthur, Vassilvitskii, "k-means++: The Advantages of Careful Seeding, " Standford, https://theory.stanford.edu/~sergei/papers/kMeansPP-soda.pdf (enlace externo a ibm.com)

7 Gutierrez, "Unsupervised Learning: Evaluating Clusters," https://opendatascience.com/unsupervised-learning-evaluating-clusters/ (enlace externo a ibm.com)

8 "K-means clustering using Python on IBM watsonx.ai," https://developer.ibm.com/tutorials/awb-k-means-clustering-in-python/ , step 4 (link resides outside ibm.com)

9 Shutaywi, Kachouie, "Silhouette Analysis for Performance Evaluation in Machine Learning with Applications in Clustering," June 2021, https://www.mdpi.com/1099-4300/23/6/759 (enlace externo a ibm.com)

10 Dhanachandra, Manglem, Chanu, "Image Segmentation Using K-means Clustering Algorithm and Subtractive Clustering Algorithm," ScienceDirect Vol 54, pgs 764-771, https://www.sciencedirect.com/science/article/pii/S1877050915014143 (enlace externo a ibm.com)

11 Bagus Mulyawan et al, "Recommendation Product Based on Customer Categorization with K-Means Clustering Method," 2019 IOP Conf. Ser.: Mater. Sci. Eng. 508 012123 https://iopscience.iop.org/article/10.1088/1757-899X/508/1/012123/pdf#:~:text=The%20K%2DMeans%20algorithm%20is,group%20customer%20based%20on%20attributes. (enlace externo a ibm.com)

12 scikit-learn, https://github.com/scikit-learn/scikit-learn/blob/5491dc695/sklearn/cluster/_kmeans.py#L1193 (enlace externo a ibm.com)

13 "Demonstración de las suposiciones de k-means," https://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_assumptions.html(enlace externo a ibm.com)