ElemedexEnciclopedia de bolsillo de arquitecturas de IA
N.º 008

k-means

Lloyd's algorithm

Centroide

Llega a una fiesta de desconocidos y, sin que nadie le diga quién es quién, los reparte en k rondas y se para en el medio de cada una. Después se corre al centro, algunos cambian de ronda, y repite hasta que nadie se mueve. Lo único que no sabe decidir es cuántas rondas armar.

Altura
0 (sin capas)
Peso
k vectores
Parámetros
k × d números: los centroides
Contexto
1 vector por punto
Datos de entrenamiento
puntos sin etiqueta, cualquier cantidad
Año
1967
Generación
1 · Cibernética y símbolos
Creadores
James MacQueen (1967), after Stuart Lloyd (Bell Labs, 1957; published 1982)
Clase
Algoritmo

Estadísticas base

Total
142

Escalas ordinales y aproximadas, pensadas para comparar especies entre sí; los números duros están en la ficha.

Debilidades

  • Hay que fijar k de antemano, y en los datos de entrenamiento más grupos siempre dan menos error.
  • Solo garantiza un óptimo local: el resultado depende de las semillas iniciales.
  • Presupone grupos compactos, más o menos esféricos y separables por distancia euclídea; los valores atípicos arrastran a los centros.
  • Obliga a cada punto a pertenecer a algún grupo: no tiene la categoría «ruido».

Hábitat

Nació en Bell Labs como técnica para cuantizar señales y recibió su nombre en un simposio de estadística en Berkeley. Hoy agrupa datos en casi cualquier disciplina y, en procesamiento del lenguaje, embeddings de documentos, casi siempre como primer intento antes de algo más fino.

Movimientos

Habilidades

Asignar y promediar
Alterna dos pasos (asignar cada punto al centro más cercano, mover cada centro a la media de su grupo) y ninguno de los dos puede aumentar la distancia cuadrática total.
Prototipos
Cada grupo queda representado por un único vector, su centroide: un resumen que puede no coincidir con ningún miembro real.
Partición convexa
Cada centro se queda con la región del espacio que está más cerca de él que de los demás; esas celdas son siempre convexas.

Anatomía

El algoritmo de Lloyd: el paso de asignación parte el espacio en celdas convexas alrededor de los centros (una teselación de Voronoi); el paso de actualización mueve cada centro al promedio de su celda. Converge siempre, pero a un óptimo local que depende de las semillas.

Cadena evolutiva

No se le conocen evoluciones.

008 k-means

k-means es el algoritmo clásico de agrupamiento: dado un conjunto de puntos sin etiquetas y un número k, los reparte en k grupos, cada uno representado por su centro. Es la primera especie de esta Pokédex que aprende sin maestro (aprendizaje no supervisado): no hay clase que predecir, solo grupos «naturales» que, se supone, reflejan algún mecanismo del dominio (Witten et al., 2017, p. 141).

Cómo funciona

Cada punto es un vector. El procedimiento que describen Witten et al. (2017) tiene cinco pasos (2017, pp. 142–143):

  1. Fijar k de antemano.
  2. Elegir k puntos al azar como centros iniciales.
  3. Asignar cada punto al centro más cercano (distancia euclídea).
  4. Reemplazar cada centro por el promedio, o centroide, de sus puntos: de ahí «means».
  5. Repetir 3 y 4 hasta que ninguna asignación cambie.

En el ejemplo del libro, quince puntos y k = 3 se estabilizan en pocas vueltas (Witten et al., 2017, p. 143). La convergencia está garantizada porque ningún paso empeora las cosas: el centroide es el punto que minimiza la suma de distancias al cuadrado dentro de un grupo, y asignar al centro más cercano también la reduce; el efecto global es minimizar la distancia cuadrática total (Witten et al., 2017, p. 144). En términos actuales, es una función de pérdida optimizada por turnos.

El nombre lo puso MacQueen (1967). El procedimiento alternado ya lo había formulado Stuart Lloyd en Bell Labs en 1957, para cuantizar señales en modulación por código de pulsos (PCM), aunque se publicó recién en 1982 (Lloyd, 1982); por eso también se lo llama algoritmo de Lloyd.

Qué cambió

Frente a k vecinos más cercanos, que guarda cada ejemplo, k-means resume: cada grupo queda condensado en un único vector, y sus parámetros son apenas k × d números (k centros de d dimensiones). El paso de asignación parte el espacio en celdas convexas, una por centro: la misma geometría que usa kNN con todos sus ejemplos, pero con solo k representantes.

Límites

El mínimo que encuentra es local: el resultado depende de las semillas iniciales, y cambios pequeños producen agrupamientos muy distintos. Witten et al. (2017) dan un ejemplo mínimo: cuatro puntos en los vértices de un rectángulo; si las semillas caen en los puntos medios de los lados largos, la solución es estable y equivocada (2017, p. 144). Se suele correr varias veces y quedarse con la mejor, o sembrar con k-means++, que elige cada semilla con probabilidad proporcional al cuadrado de su distancia a las ya elegidas (Witten et al., 2017, p. 144).

El problema de fondo es k, un hiperparámetro. Con los datos de entrenamiento, el «mejor» agrupamiento según la distancia total es siempre uno por punto; hay que penalizar los grupos de más (por ejemplo, con longitud mínima de descripción) o probar divisiones sucesivas (Witten et al., 2017, p. 146). A eso se suma su sesgo inductivo: supone grupos compactos y convexos.

Con texto, el procedimiento típico es convertir documentos en embeddings, reducir la dimensión y recién entonces agrupar (Alammar y Grootendorst, 2024, p. 139). k-means es una opción común, pero exige saber k; métodos basados en densidad como HDBSCAN deciden el número de grupos y dejan fuera los puntos atípicos (Alammar y Grootendorst, 2024, p. 143).

Fuentes

  • Alammar, J., & Grootendorst, M. (2024). Hands-on large language models: Language understanding and generation. O’Reilly Media. §
  • Buckner, C. J. (2024). From deep learning to rational machines: What the history of philosophy can teach us about the future of artificial intelligence. Oxford University Press. https://doi.org/10.1093/oso/9780197653302.001.0001 §
  • Gärdenfors, P. (2000). Conceptual spaces: The geometry of thought. MIT Press. https://doi.org/10.7551/mitpress/2076.001.0001 §
  • Lloyd, S. P. (1982). Least squares quantization in PCM. IEEE Transactions on Information Theory, 28(2), 129–137. https://doi.org/10.1109/TIT.1982.1056489 §
  • MacQueen, J. (1967). Some methods for classification and analysis of multivariate observations. In L. M. Le Cam & J. Neyman (Eds.), Proceedings of the Fifth Berkeley Symposium on Mathematical Statistics and Probability (Vol. 1, pp. 281–297). University of California Press. §
  • Posner, M. I., & Keele, S. W. (1968). On the genesis of abstract ideas. Journal of Experimental Psychology, 77(3, Pt. 1), 353–363. https://doi.org/10.1037/h0025953 §
  • Rosch, E. (1975). Cognitive representations of semantic categories. Journal of Experimental Psychology: General, 104(3), 192–233. https://doi.org/10.1037/0096-3445.104.3.192 §
  • Witten, I. H., Frank, E., Hall, M. A., & Pal, C. J. (2017). Data mining: Practical machine learning tools and techniques (4th ed.). Morgan Kaufmann. https://doi.org/10.1016/C2015-0-02071-8 §