Ciencia de datos

Método del codo: interpretación correcta y limitaciones

Cuando usas k-means tienes que decidir algo incómodo de entrada: cuántos grupos, k, vas a buscar en el conjunto de datos. Y como el algoritmo no lo decide por ti, casi todo el mundo recurre al mismo truco: el método del codo. Dibujas una curva, buscas el “punto donde se dobla” y ese es tu número de clusters. Rápido, visual y aparentemente objetivo.

El problema es que el método del codo se malinterpreta y se sobrevalora con la misma facilidad con la que se usa. No es un criterio objetivo, no siempre existe un codo, y cuando lo hay no tiene por qué corresponder al número “verdadero” de grupos. En esta entrada vemos qué dice realmente, cómo leerlo bien y dónde están sus límites.

Qué es exactamente el método del codo

Para cada valor de k se ejecuta k-means y se mide lo compactos que han quedado los grupos mediante la suma de cuadrados intra-cluster (WCSS, también llamada inercia o distorsión): \text{WCSS}(k) = \sum_{j=1}^{k} \sum_{x \in C_j} \lVert x - \mu_j \rVert^2, es decir, la suma de las distancias al cuadrado de cada punto al centroide \mu_j de su grupo. Esto es, ni más ni menos, la propia función objetivo que k-means minimiza.

Luego se representa \text{WCSS}(k) frente a k. La curva siempre baja: cuantos más grupos permitas, más cerca queda cada punto de su centroide, hasta llegar a WCSS =0 cuando hay un grupo por punto. Típicamente cae en picado al principio y luego se aplana. Ese cambio brusco de pendiente, el “codo”, se interpreta como el k óptimo.

La interpretación correcta

La lógica detrás del codo es razonable: es un argumento de rendimientos decrecientes.

  • Antes del codo: añadir un grupo más captura estructura real de los datos, así que la WCSS cae mucho.
  • Después del codo: los grupos que de verdad existían ya están separados; añadir más solo subdivide grupos coherentes, y la WCSS apenas mejora.

El codo marca, por tanto, el punto donde dejas de pagar por estructura real y empiezas a pagar por trocear lo que ya estaba bien. Una forma equivalente y a veces más intuitiva de verlo es en términos de varianza explicada: como WCSS$(1)$ es la varianza total, la fracción 1 - \text{WCSS}(k)/\text{WCSS}(1) es la “varianza explicada por el agrupamiento”, y el codo es donde esa ganancia se aplana.

Leído así, el método es honesto: es una forma visual de detectar el punto de equilibrio entre complejidad (k) y ajuste (WCSS baja). El error no está en el método, sino en tratarlo como si entregara una respuesta exacta y objetiva. No lo hace.

Las limitaciones (que son muchas)

El codo suele ser ambiguo o sencillamente no existe

En datos reales, la curva muchas veces baja de forma suave, sin ningún punto claro donde se doble. ¿El codo está en 3, en 4 o en 5? Dos analistas pueden mirar el mismo gráfico y elegir valores distintos. El método no tiene una regla de decisión: depende del ojo de quien lo lee, lo que lo hace subjetivo y poco reproducible.

La WCSS nunca te dice cuándo parar

Como la WCSS decrece de forma monótona y solo llega a su mínimo (cero) cuando k=n, no tiene un mínimo interior que optimizar. No estás buscando el valor que minimiza una métrica; estás juzgando a ojo un cambio de pendiente. Eso lo distingue de criterios que sí tienen un óptimo bien definido.

Hereda todos los supuestos de k-means

El método del codo no es más válido que el algoritmo que hay debajo. k-means asume grupos esféricos, de tamaño y densidad similares y separados linealmente. Si tus clusters son alargados, de densidades muy distintas o de forma no convexa, k-means los partirá mal, y el codo reflejará esa partición defectuosa. La heurística no puede rescatar a un algoritmo que no encaja con la estructura de los datos.

Es muy sensible a la escala

La WCSS se construye con distancias, y las distancias dependen de las unidades. Si no estandarizas, las variables con más varianza dominan el cálculo y deforman tanto el agrupamiento como el codo. Igual que en PCA, estandarizar (z-score) no es un paso opcional, es una decisión de modelado que cambia el resultado.

Depende de la aleatoriedad de k-means

k-means parte de centroides iniciales aleatorios y puede converger a soluciones distintas en ejecuciones distintas. Eso significa que la WCSS de un mismo k puede variar entre corridas. Sin múltiples reinicios (k-means++, varios n_init), el codo puede moverse de una ejecución a otra.

Solo mide compacidad, no separación

La WCSS solo cuantifica cómo de apretados están los puntos dentro de cada grupo. No dice nada sobre cómo de separados están los grupos entre sí. Podrías tener clusters compactos pero solapados, y el codo no se enteraría. Una buena solución de clustering necesita ambas cosas: cohesión interna y separación externa.

No detecta la ausencia de estructura

Si tus datos no tienen ninguna estructura de grupos (una nube uniforme), el método del codo te dará un codo de todos modos y elegirás algún k, descubriendo grupos que no existen. La WCSS siempre baja al añadir centroides, haya o no clusters reales. El método no sabe responder “aquí no hay nada que agrupar”.

La maldición de la dimensionalidad

En muchas dimensiones las distancias tienden a concentrarse (todos los puntos acaban a distancias parecidas), las diferencias de WCSS se aplanan y el codo se difumina hasta volverse inservible.

Alternativas y complementos

La buena noticia es que el codo no tiene que ir solo. Conviene apoyarlo en métricas con criterios más definidos:

  • Coeficiente de silueta (silhouette). Para cada punto combina su cohesión (distancia media a su grupo) y su separación (distancia al grupo vecino más cercano). Tiene un máximo que puedes optimizar y, a diferencia de la WCSS, mide separación además de compacidad.
  • Estadístico gap (gap statistic). Compara la WCSS observada con la que se esperaría si no hubiera ninguna estructura (una distribución de referencia sin clusters). Tiene una regla de decisión más principiada y, crucialmente, puede indicar k=1, es decir, “no hay grupos”.
  • Índices de Calinski-Harabasz y Davies-Bouldin. Cocientes entre dispersión inter e intra-grupo, con óptimos bien definidos (máximo y mínimo, respectivamente).
  • Algoritmo Kneedle. Detecta el codo de forma algorítmica, eliminando parte de la subjetividad de elegirlo a ojo.
  • Modelos de mezcla gaussiana con BIC/AIC. Un enfoque basado en modelo que selecciona el número de componentes con un criterio de información, en lugar de inspeccionar una curva.
  • Métodos que no requieren fijar k. DBSCAN o HDBSCAN encuentran los grupos (y el ruido) sin que tengas que decidir el número de antemano, y manejan formas no esféricas.

Y, por encima de todo: el conocimiento del dominio y la interpretabilidad de los grupos resultantes. Si los clusters que sugiere el codo no significan nada en tu problema, el número “óptimo” no sirve de nada.

Cómo usarlo bien

El método del codo es útil como primera aproximación, no como veredicto. En la práctica:

  • Estandariza las variables antes de calcular nada.
  • Usa varios reinicios (k-means++) para que la curva sea estable.
  • Cruza el codo con el silhouette (u otra métrica): si ambos apuntan al mismo k, tienes más confianza; si discrepan, investiga.
  • Inspecciona los grupos que salen, no solo el número: ¿tienen sentido?, ¿son interpretables?
  • Trátalo como un rango plausible, no como un único valor sagrado.

Conclusiones

La moraleja repite la de toda buena estadística: una herramienta visual cómoda no exime de entender qué mide. El codo te da una pista razonable sobre cuántos grupos buscar; convertirla en una verdad exacta es justo el error que conviene no cometer.

En resumen:

  • El método del codo grafica la propia función objetivo de k-means (WCSS) frente a k y busca el punto de rendimientos decrecientes.
  • Su interpretación correcta es la de un equilibrio entre complejidad y ajuste, no la de un criterio objetivo: no hay regla de decisión y el codo lo eliges a ojo.
  • A menudo el codo es ambiguo o no existe, y la WCSS nunca te dice cuándo parar porque solo baja.
  • Hereda los supuestos de k-means (grupos esféricos), es sensible a la escala y a la aleatoriedad, solo mide compacidad y no detecta la ausencia de clusters.
  • Apóyalo siempre en otras métricas con óptimo definido —silhouette, gap statistic, Calinski-Harabasz— y en el sentido común del dominio.

Imagen de IAOM-US en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Errores comunes al interpretar resultados estadísticos

La estadística no suele fallar en los cálculos: falla en la interpretación. El test está…

5 días ago

Dashboard CLV: cuatro modelos, un mismo dataset, conclusiones muy distintas

Los artículos anteriores de esta serie cubrieron cuatro formas de mirar el valor del cliente:…

1 semana ago

Curiosidad: Por qué la criptografía habla siempre de Alice y Bob

Quien se acerca a la criptografía descubre enseguida a dos personajes que aparecen en casi…

2 semanas ago

Desbalanceo de Clases en Credit Scoring: Por Qué Usamos Ponderación en lugar de Undersampling

En credit scoring el desbalanceo de clases es la norma, no la excepción. En una…

2 semanas ago

Curiosidad: El “bug”, la polilla y la leyenda de Grace Hopper

Cualquiera que programe usa la palabra bug a diario para referirse a un fallo en…

3 semanas ago

BG/BB: el modelo de CLV para compras en períodos discretos

Los dos artículos anteriores de la serie cubrieron BG/NBD, el modelo para negocios donde el…

3 semanas ago

This website uses cookies.