meskeIA

Simulador de K-Means Clustering

Añade puntos, elige K y observa la convergencia paso a paso. Aprendizaje no supervisado interactivo.

© 2026 meskeIA© 2026

Datasets predefinidos

Generar datos sintéticos

Gaussianas
3
25
Uniforme
100
Modo edición

Tus propios datos

Pega dos columnas de números —o carga un archivo— y el simulador agrupa tus datos en lugar de los de ejemplo. Sirve el tabulador de una hoja de cálculo, el punto y coma, el espacio o la coma, y los decimales pueden ir con coma (12,5) o con punto (12.5); si separas las columnas con comas, los decimales tienen que ir con punto. Si la primera fila es una cabecera, se usa para nombrar los ejes. Todo el proceso ocurre en tu navegador: los datos no se envían a ningún servidor.

Antes de agrupar, cada columna se normaliza de 0 (su mínimo) a 1 (su máximo), y las dos se dibujan con la misma escala, en un cuadrado: sin ese paso, la variable con los números más grandes (un salario frente a una edad) dominaría la distancia euclídea y el agrupamiento la obedecería casi solo a ella. Así las dos pesan igual, da lo mismo cuál pegues primero, y el centroide más cercano que ves es el que usa el algoritmo. Los centroides se dan después en las unidades de tus columnas, y la inercia, en las unidades normalizadas. Dos avisos: un número con exactamente tres cifras tras un punto se lee como millar español (1.234 es mil doscientos treinta y cuatro; escribe 1,234 si querías decimales), y el máximo son 2000 puntos.

Parámetros del algoritmo

3
20

Lienzo (clic para añadir punto)

90 puntos en el lienzo

Iteración
0/ 20
Inercia (SSE)
—
Estado
Sin iniciar
Puntos / clusters
90/ K=3

Método del Codo (Elbow Method)

Ejecuta k-means para K = 1 hasta K = 10 y muestra cómo decrece la inercia. El codo de la curva sugiere un buen valor de K.

Guía de K-Means Clustering

Algoritmo de aprendizaje no supervisado

Pasos del Algoritmo K-Means

PasoQué haceFórmula / criterioCoste por iteración
1. InicializaciónElegir K centroides inicialesAleatorio entre puntos, o k-means++ proporcional a d²O(N·K) en k-means++
2. AsignaciónCada punto se asigna al centroide más cercanoargmin_j ‖xᵢ − μⱼ‖²O(N·K·d)
3. RecálculoCada centroide se mueve al promedio de sus puntosμⱼ = (1 / |Cⱼ|) · Σ xᵢ para xᵢ ∈ CⱼO(N·d)
4. ConvergenciaRepetir hasta que los centroides no se muevanCambio en centroides < tolerancia (o iter máx)—
5. MétricaInercia (suma de distancias² intra-cluster)SSE = Σⱼ Σ_(xᵢ ∈ Cⱼ) ‖xᵢ − μⱼ‖²O(N·d)

Casos de Uso Reales

Estudiante de IA / FP Informática

Estudias Machine Learning y necesitas entender por qué k-means converge, qué es la inercia y cómo afecta la inicialización al resultado final.

Carga «3 gaussianas separadas», prueba inicialización aleatoria varias veces y observa cómo a veces converge a una solución peor.
Segmentación de clientes (marketing)

Una empresa con 100.000 clientes quiere agruparlos por comportamiento de compra (RFM: Recency, Frequency, Monetary) para campañas personalizadas.

En la práctica, normalizar variables y usar el método del codo o la silueta para elegir K antes de aplicar k-means.
Compresión de imagen (cuantización de color)

Una imagen RGB tiene 16M colores. Aplicando k-means con K=16 a sus píxeles, obtienes una paleta reducida y la imagen ocupa mucho menos.

Cada píxel se reasigna al centroide (color) más cercano. Es una de las técnicas para construir paletas reducidas, como la de 256 colores como máximo que admite el formato GIF; el formato no fija el método, y también se usan median cut u octree.
Análisis de expresión genética

Un investigador agrupa muestras de pacientes según su perfil de expresión génica para descubrir subtipos de una enfermedad.

k-means se aplica tras reducir dimensionalidad con PCA o UMAP. Para datos no esféricos, considerar DBSCAN o clustering jerárquico.

Preguntas Frecuentes

¿Cómo elijo el número correcto de clusters K?

No hay respuesta única. Las técnicas más usadas son: método del codo (graficar la inercia frente a K y buscar el «codo»), coeficiente de silueta (mide qué tan bien encajan los puntos en su cluster), y conocimiento del dominio (si sabes que hay 5 segmentos de clientes, prueba K=5).

Pulsa «Calcular curva del codo» en este simulador para ver el método aplicado a tus puntos.

¿Por qué k-means++ es mejor que la inicialización aleatoria?

La inicialización aleatoria puede colocar dos centroides muy cerca, haciendo que k-means converja a un mínimo local malo. k-means++ elige los centroides iniciales separados entre sí (probabilidad proporcional a d² al centroide más cercano), lo que reduce el riesgo y suele dar mejor inercia final.

Carga «3 gaussianas separadas», ejecuta varias veces con cada inicialización y compara la inercia final.

¿K-means siempre converge?

Sí, k-means siempre converge en un número finito de iteraciones porque la inercia disminuye en cada paso (o se mantiene). Pero no garantiza el óptimo global: puede quedarse atrapado en un mínimo local. Por eso se ejecuta varias veces con distintas semillas y se elige la solución de menor inercia.

En scikit-learn el parámetro n_init controla cuántas inicializaciones distintas se prueban. Desde la versión 1.4 vale 'auto' por defecto: una sola ejecución con init='k-means++' (la inicialización por defecto) y 10 con init='random'. Para quedarte con la mejor de varias con k-means++, súbelo a mano.

¿Cuándo falla k-means?

K-means asume clusters esféricos, de tamaños similares y de densidades parecidas. Falla con: clusters alargados o curvados (DBSCAN va mejor), clusters de tamaños muy distintos (el grande absorbe al pequeño), datos con mucho ruido u outliers (k-medoids es más robusto), y datos no escalados (variables grandes dominan).

Carga el preset «Forma alargada» en este simulador para ver el fallo de forma visual.

¿Qué diferencia hay entre k-means y k-medoids (PAM)?

En k-means el centroide es el promedio aritmético de los puntos del cluster (no es necesariamente un punto real). En k-medoids el medoide es el punto real del cluster que minimiza la suma de distancias al resto. K-medoids es más robusto a outliers y permite distancias no euclidianas, pero es más caro computacionalmente.

Si tu dataset tiene outliers fuertes, considera k-medoids o limpia los outliers antes de aplicar k-means.

¿Qué es la inercia y por qué importa?

La inercia (también llamada SSE o WCSS) es la suma de distancias al cuadrado de cada punto a su centroide. Mide qué tan compactos son los clusters. K-means la minimiza paso a paso. A más K, menor inercia (en el extremo, K = N puntos da inercia 0). Por eso no se puede minimizar y ya: hay que equilibrar inercia con número de clusters (de ahí el método del codo).

Observa cómo la inercia baja en cada iteración de este simulador hasta estabilizarse.

Cómo Aplicar K-Means a tus Datos — Paso a Paso

1
Prepara los datos

Elimina filas con valores faltantes, codifica las variables categóricas (one-hot encoding) y, sobre todo, escala las variables numéricas (StandardScaler o MinMaxScaler). Si una variable tiene rango 0-1000 y otra 0-1, la primera dominará la distancia.

2
Reduce dimensionalidad si es necesario

Si tienes más de 20-30 variables, aplica PCA o UMAP antes de k-means. La maldición de la dimensionalidad hace que las distancias euclidianas pierdan significado en alta dimensión.

3
Elige K con método del codo o silueta

Ejecuta k-means para K = 2 a 10 y grafica la inercia frente a K. El «codo» (donde la pendiente cambia bruscamente) sugiere un buen K. Como complemento, calcula el coeficiente de silueta y elige el K con mayor silueta media.

4
Ejecuta k-means con varias semillas

Usa k-means++ y n_init = 10 (o más) para evitar mínimos locales. Quédate con la solución de menor inercia. Establece random_state para reproducibilidad.

5
Interpreta y valida los clusters

Calcula las medias de cada cluster en las variables originales. Visualiza con scatterplot 2D (PCA si hay muchas variables). Pregúntate: ¿los clusters tienen sentido de negocio? Si no, replantea el preprocesamiento o el K.

Mejores Prácticas

Escala SIEMPRE las variables

StandardScaler en scikit-learn. Sin escalar, k-means da resultados sin sentido cuando las variables tienen unidades distintas.

Usa k-means++ por defecto

Es el default en scikit-learn. Casi siempre da mejor inercia final que la inicialización aleatoria, con coste computacional ligero.

Ejecuta múltiples veces

Sube n_init a 10-50 para datos importantes. Quédate con la mejor solución (menor inercia). El tiempo extra suele compensar.

Combina codo y silueta

El codo es subjetivo y a veces no es claro. La silueta da un número entre -1 y 1: cerca de 1 = bueno, cerca de 0 = puntos en frontera.

No fuerces k-means con datos no esféricos

Si tus datos son alargados, en forma de luna o anillos, prueba DBSCAN, clustering jerárquico o Gaussian Mixture Models.

Trata los outliers antes

K-means es sensible a outliers (mueven los centroides). Detecta y elimina (o aísla) outliers con IsolationForest o IQR antes del clustering.

Errores frecuentes a evitar
  • No escalar las variables: la variable con mayor rango domina la distancia y los clusters se forman solo según ella.
  • Asumir que más K es mejor: la inercia siempre baja con K, pero los clusters pierden interpretabilidad. El codo y la silueta evitan este error.
  • Aplicar k-means a datos categóricos sin codificar correctamente: distancia euclidiana sobre etiquetas no tiene sentido.
  • Confundir inercia baja con «buen clustering»: con K = N puntos la inercia es 0 pero el clustering es inútil.
  • Ejecutar una sola vez con inicialización aleatoria: puedes caer en un mínimo local malo. Usa n_init > 1.
  • No interpretar los clusters: obtener clusters no es el final. Hay que calcular medias por cluster, validarlos con el negocio y darles nombre.

Apps relacionadas