Cuando trabajas con datos sin etiquetas, necesitas herramientas capaces de identificar patrones por sí solas. K-means es uno de los algoritmos más utilizados en unsupervised learning para descubrir agrupaciones naturales en los datos, y comprender su funcionamiento es esencial para cualquier persona que trabaje con machine learning.
¿Qué es k-means y cómo encuentra estructura en los datos?
El aprendizaje no supervisado (unsupervised learning) busca encontrar estructura en datos que no tienen una variable objetivo definida [0:08]. Imagina un scatterplot con dos features de entrada, x1 y x2: visualmente podrías intuir que existen tres grupos, pero necesitas un método formal para asignar cada punto a su grupo correspondiente. Ahí es donde entra k-means.
El algoritmo se basa en el concepto de centroide [0:40]. Un centroide es un punto en el espacio que actúa como el representante o líder de un cluster. Al inicio, estos centroides se colocan de forma aleatoria, aunque existen métodos no aleatorios para inicializarlos.
El proceso funciona así:
- Se calculan las distancias de cada punto de datos hacia todos los centroides.
- Cada punto se asigna al cluster cuyo centroide esté más cercano.
- Se actualizan los centroides calculando el promedio de todos los puntos asignados a cada grupo.
- El proceso se repite hasta que se cumple un criterio de parada.
¿Cuál es el único parámetro principal de k-means?
El valor k, es decir, el número de grupos que defines antes de ejecutar el algoritmo [1:36]. Elegir distintos valores de k produce resultados muy diferentes. Con k igual a 2 podrías obtener un cluster superior y otro inferior; con k igual a 3 o 4, tanto la forma como la cantidad de puntos en cada grupo cambian significativamente.
¿Qué función de costo optimiza k-means?
La función de costo busca minimizar la distancia total entre cada punto y el centroide del cluster al que pertenece [2:14]. Para todos los datos que pertenecen a un grupo específico, se mide qué tan lejos están de su centroide representativo. El objetivo es que esa distancia sea lo más pequeña posible.
¿Cómo funciona la regla de actualización y cuándo se detiene el algoritmo?
La regla de actualización (update rule) sigue un ciclo claro [2:46]:
- Solo al inicio se colocan los centroides aleatoriamente.
- Se calcula la distancia de cada punto a cada centroide.
- Se asigna membresía: cada punto pertenece a un solo cluster.
- Se recalculan los centroides como el promedio de los puntos de cada grupo.
El algoritmo puede terminar de dos maneras:
- Las posiciones de los centroides ya no cambian de forma significativa.
- La membresía de los puntos a los clusters permanece estable.
En las primeras iteraciones, los centroides se mueven considerablemente [3:36]. Conforme avanza el proceso, los movimientos se vuelven mínimos, lo cual indica convergencia. Es recomendable visualizar cada iteración con scatterplots para entender cómo evoluciona el modelo.
¿Cómo elegir el mejor valor de k para tu modelo?
Determinar un buen valor de k es fundamental y se puede abordar desde dos perspectivas [4:08].
Cuando solo tienes un modelo, puedes calcular dos métricas:
- Inercia (inertia): mide qué tan compactos están los puntos alrededor de su centroide. Un valor bajo indica clusters más cohesivos.
- Silhouette score: evalúa qué tan separados están los clusters entre sí. Un valor cercano a uno indica una separación clara.
Sin embargo, un solo modelo generalmente no es suficiente. Para comparar múltiples valores de k, se utiliza el elbow plot [4:44]. Este gráfico muestra la inercia en función de k: a medida que aumentas el número de grupos, la inercia disminuye. El punto clave es identificar el codo o curva pronunciada en el gráfico, que indica el valor de k más apropiado. Esto requiere ejecutar varios modelos con valores pequeños y grandes de k.
Para practicar estos conceptos, se propone trabajar con el Iris Dataset [5:52], un conjunto de datos clásico en machine learning que utiliza características de flores como el ancho del pétalo y el sépalo para explorar agrupaciones y predicciones.
Si tienes dudas sobre cómo implementar k-means o elegir el valor de k adecuado, comparte tus preguntas en los comentarios.