Nuri Data Science – Plataforma de Ejercicios de Ciencia de Datos, SQL, Python y Machine Learning
Clustering
Agrupamiento no supervisado: K-Means, DBSCAN y Gaussian Mixture en tiempo real
K clusters
3
Patron de datos
% Ruido
10%
N puntos
150
Animacion paso a paso
Scatter — puntos coloreados por cluster asignado
★ = centroide
—
Clusters
—
Iteraciones
—
Inercia (SSE)
—
Silhouette
Grafica del Codo — Inercia vs K
Silhouette score por cluster
📚 ¿Que estas viendo?
K-Means es un algoritmo iterativo que agrupa N puntos en K clusters.
Empieza colocando K centroides al azar y repite dos pasos: (1) Asignacion — cada punto se asigna al centroide mas cercano;
(2) Actualizacion — cada centroide se mueve al promedio de sus puntos asignados.
El algoritmo converge cuando ningun punto cambia de cluster entre iteraciones.
La Inercia (SSE) mide la suma de distancias al cuadrado de cada punto a su centroide — menor inercia = clusters mas compactos. La Grafica del Codo ayuda a elegir K: busca el punto donde agregar mas clusters ya no reduce mucho la inercia. El Silhouette score (rango -1 a 1) mide que tan bien separados estan los clusters entre si — valores cercanos a 1 indican clusters bien definidos. Usa los botones de animacion para ver cada iteracion del algoritmo.
La Inercia (SSE) mide la suma de distancias al cuadrado de cada punto a su centroide — menor inercia = clusters mas compactos. La Grafica del Codo ayuda a elegir K: busca el punto donde agregar mas clusters ya no reduce mucho la inercia. El Silhouette score (rango -1 a 1) mide que tan bien separados estan los clusters entre si — valores cercanos a 1 indican clusters bien definidos. Usa los botones de animacion para ver cada iteracion del algoritmo.
⚠ Limitaciones de K-Means
K debe conocerse de antemano
K-Means requiere especificar el numero de clusters antes de correr. En datos reales ese numero no se conoce — se necesita la grafica del codo, el silhouette score u otros criterios para estimarlo.
Sensible a la inicializacion
Si los centroides iniciales caen en posiciones desfavorables, el algoritmo puede converger a un optimo local malo. K-Means++ mejora la inicializacion eligiendo centroides mas separados entre si.
Solo detecta clusters esfericos
K-Means asume que los clusters son convexos y de tamanio similar. No puede detectar formas no convexas como anillos o lunas. Para eso existen DBSCAN o Gaussian Mixture con covarianza libre.
Muy sensible a outliers
Los centroides son promedios aritmeticos: un solo outlier extremo puede desplazar un centroide lejos de la masa de puntos. K-Medoids (PAM) usa puntos reales como centroides y es mas robusto.
Escala de variables importa
K-Means usa distancia Euclidiana. Si una variable tiene rango [0-1000] y otra [0-1], la primera domina completamente el agrupamiento. Siempre se debe estandarizar antes de aplicar K-Means.
Convergencia no garantiza optimo global
El algoritmo siempre converge pero no garantiza la mejor solucion posible. En la practica se corre varias veces con distintas semillas aleatorias y se elige la de menor inercia (parametro n_init en sklearn).
Asignacion dura (hard assignment)
Cada punto pertenece exactamente a un cluster. En datos con fronteras difusas esto puede ser artificialmente rigido. Gaussian Mixture Model ofrece asignacion suave (probabilidades de membresia).
La inercia siempre baja con K
Con K=N la inercia es 0 (cada punto es su propio cluster). Por eso no se puede optimizar K minimizando la inercia directamente — se necesita una penalizacion por complejidad como el BIC o el metodo del codo.