Unidad 6 - Clustering: fundamentos y métricas
Analítica para los negocios · Semana 13 · 06327-ECO
1 Cómo estudiar esta semana
Este documento es la versión escrita del video de la semana
- 🎬 Mira el video de la clase — el enlace estará en la página del curso. En clustering el componente visual es clave: verás los centroides moverse en vivo.
- 📖 Lee este documento — el mismo recorrido, con un playground de k-means para correr el algoritmo paso a paso y una perilla de k para entrenar el ojo con el codo y la silueta.
- ✅ Presenta el quiz al inicio de la clase.
Antes de venir a clase: esta semana NO hay paquetes nuevos 🎉
Todo lo que usarás ya está en tu máquina: dplyr y ggplot2 te acompañan desde la semana 4, kmeans() viene con R, y el paquete cluster (para la silueta) se instala junto con R. Verifícalo en 10 segundos: library(cluster) no debe arrojar error. Si arroja, install.packages("cluster") y listo.
El plan: llevas tres semanas entrenando modelos con hoja de respuestas — el target decía quién pagó, qué nota sacó, y las métricas medían qué tanto le atinabas. Esta semana te quitamos la hoja de respuestas. La empresa entrega una base de clientes y pregunta: “¿qué tipos de clientes tengo?” Nadie sabe la respuesta — ni la empresa, ni el modelo, ni tú. Vas a descubrir grupos con k-means, a decidir cuántos grupos hay con el codo y la silueta, y a hacer el paso que paga el sueldo del analista: perfilar cada grupo hasta que tenga nombre propio y una acción de negocio.
2 Glosario de la semana
Aprendizaje no supervisado 🧭 Modelar sin target: no hay columna con “la respuesta correcta”. El algoritmo busca estructura (grupos, patrones) y el humano juzga si esa estructura sirve.
Segmentación 🗺️ El uso estrella del clustering en negocios: partir clientes/productos/zonas en grupos internamente parecidos y externamente distintos, para tratarlos diferente.
Distancia 📐 El “qué tan diferentes son” entre dos observaciones: cada cliente es un punto en el espacio de las variables, y estar cerca = comportarse parecido.
Escalamiento ⚖️ scale(): llevar cada variable a media 0 y desviación 1. Obligatorio antes de k-means: sin esto, la variable de rango grande (pesos) aplasta a las demás en el cálculo de distancias.
Centroide 🎯 El punto promedio de un cluster — la “bodega” del grupo. k-means vive moviendo centroides y reasignando puntos hasta que nada cambia.
WCSS 🧲 Within-cluster sum of squares: la suma de distancias² de cada punto a su centroide. Mide compactación — qué tan apretados quedaron los grupos. Es lo que k-means minimiza.
Método del codo 💪 Graficar la WCSS para k = 1, 2, 3… y buscar el punto donde agregar un cluster más deja de comprar compactación. Orienta, no decide.
Silueta 👤 De −1 a +1 por observación: ¿estás más cerca de tu cluster que del vecino? La silueta promedio compara valores de k — y a diferencia del codo, sí tiene un máximo.
nstart 🎲 k-means arranca con centroides aleatorios y puede terminar distinto cada vez. nstart = 25 corre 25 arranques y se queda con el mejor — tu seguro contra la mala suerte.
Perfilamiento 🏷️ Traducir cada cluster a negocio: tabla de promedios, tamaños, gráficos y un nombre accionable. Un cluster sin perfil es un número; con perfil es una estrategia.
3 Se acabaron las respuestas
Mira el arco de las últimas tres semanas: en la 10 aprendiste a medir modelos, en la 11 predijiste categorías (¿paga o no paga?), en la 12 predijiste números (¿en cuánto se vende?). En todas hubo un lujo que ya ni notabas: la columna con la respuesta. Podías partir en train/test y preguntar “¿le atiné?” porque había un dato real contra el cual chocar cada predicción.
Hoy ese lujo desaparece. El gerente no pregunta “predícEme quién se fuga” — pregunta “¿qué tipos de socios tengo?”. En la base no existe ninguna columna tipo_de_socio. No la tiene él, no la tienes tú, no la tiene nadie: hay que descubrirla.
| Supervisado (semanas 10-12) | No supervisado (esta semana) | |
|---|---|---|
| ¿Hay target? | 🟢 Sí — la hoja de respuestas | 🔴 No — nadie sabe “la verdad” |
| La pregunta | ¿Puedo predecir Y? | ¿Qué estructura esconde X? |
| ¿“Acertar” se puede medir? | Sí: matriz de confusión, MAE… | No hay contra qué: no existe la respuesta correcta |
| ¿Entonces cómo se evalúa? | Contra el test (una vez) | Compactación (WCSS), silueta… y criterio de negocio |
| El veredicto final | “Le atina X%” | “¿Los grupos se pueden nombrar y accionar?” |
Dónde estás parado en el pipeline
Los pasos de la semana 10 siguen ahí — pregunta de negocio, preparar datos, entrenar, evaluar, comunicar — pero la evaluación cambia de naturaleza: ya no hay test que dé un veredicto objetivo. Las métricas de esta semana (WCSS, silueta) orientan la búsqueda, y la decisión final es de criterio: un clustering es bueno si produce segmentos útiles. Esto no es una debilidad — es la razón por la que este trabajo no se automatiza fácil.
4 ¿Por qué segmentar?
Antes del algoritmo, el problema de negocio. Tienes 10.000 clientes y un presupuesto de marketing que no alcanza para consentirlos a todos. Tratarlos igual es ineficiente: no todos quieren lo mismo, no compran igual, no responden al mismo mensaje. La segmentación busca grupos internamente homogéneos (los miembros se parecen entre sí) y externamente diferentes (los grupos se distinguen), para diseñar una estrategia por grupo en lugar de una talla única.
Un buen agrupamiento logra las dos cosas a la vez — y los extremos no sirven: si todos los clientes caen en un solo grupo, no segmentaste nada; si cada cliente es su propio grupo, tampoco. El reto es el punto intermedio útil para decidir.
Preguntas de segmentación típicas:
- ¿Qué perfiles de clientes tenemos según frecuencia, monto y recencia de compra? (la de la práctica, con los clientes de Cóndor)
- ¿Qué zonas de la ciudad se comportan parecido en ventas, para asignar vendedores?
- ¿Qué productos comparten patrón de demanda, para planear inventario juntos?
- ¿Qué canciones “suenan” parecido, para armar listas automáticas?
En todos los casos, nadie dice de antemano cuántos grupos hay ni cuáles son. Eso lo descubre el algoritmo — y lo valida el analista.
5 k-means: la máquina de las bodegas
5.1 Similitud = cercanía
La idea central del clustering cabe en una frase: observaciones que están “cerca” pertenecen al mismo grupo. Cada cliente es un punto en un espacio donde cada eje es una variable (monto, frecuencia, recencia…), y la distancia entre dos puntos mide qué tan distinto es su comportamiento.
La regla de oro: escalar ANTES de agrupar
Si una variable está en pesos (rango 0–5.000.000) y otra en visitas al mes (rango 0–20), la distancia la domina la de pesos: para el algoritmo, la diferencia entre gastar $80.000 y $95.000 es quince mil veces más grande que la diferencia entre ir 1 vez y ir 20. El clustering resultante refleja unidades, no comportamiento.
scale() lleva todas las variables a media 0 y desviación 1 — la misma cancha para todas. Siempre escala las variables numéricas antes de k-means. En la práctica y el taller de esta semana vas a ver (con números) qué pasa cuando alguien lo olvida.
Si quieres una pasada visual alternativa de 5 minutos, este video del canal AprendeInnovando (material complementario, en español) resume el algoritmo:
5.2 El algoritmo en 4 pasos
k-means, versión gerente de logística
Necesitas ubicar k bodegas para atender a tus clientes repartidos en el mapa, cada bodega lo más cerca posible de los suyos:
- Inicio: coloca k bodegas en posiciones aleatorias.
- Asignación: cada cliente se asigna a la bodega más cercana.
- Actualización: mueve cada bodega al centro geográfico de sus clientes.
- Repetición: repite 2 y 3 hasta que las bodegas dejen de moverse (convergencia).
Las “bodegas” son los centroides; los clientes de cada bodega, los clusters.
Lo que k-means optimiza: la suma de distancias² de cada punto a su centroide — la WCSS (within-cluster sum of squares). Grupos compactos = WCSS baja. Ese número te lo vas a encontrar en el playground de abajo, en el gráfico del codo y en el output de R (tot.withinss).
5.3 Explóralo tú mismo: k-means playground
Corre el algoritmo paso a paso — el video de la clase lo muestra; aquí lo manejas tú:
- Selecciona “Blobs separados” y ve paso a paso: Inicializar → Asignar → Mover centroides → repetir. Observa cómo la WCSS baja en cada iteración hasta converger.
- Con el mismo dataset, Reinicia e Inicializa varias veces con el mismo k: los centroides arrancan en lugares distintos… ¿el resultado final es siempre igual? (Esta es la razón de
nstart = 25en R.) - Cambia a “Anillos” con k = 2. ¿Por qué k-means fracasa aquí? ¿Qué supuesto del algoritmo se rompe?
- Prueba “Grupos desiguales” con k = 3 y mira la silueta: ¿sube o baja frente a “Blobs separados”?
5.4 Limitaciones de k-means
Limitaciones que debes tener presentes al leer resultados
- Hay que elegir k de antemano — el algoritmo no decide cuántos grupos hay; tú le dices cuántos buscar (la siguiente sección es justo sobre eso).
- Sensible a la inicialización — dos corridas pueden dar grupos distintos. Solución estándar:
nstart = 25(R corre 25 arranques y entrega el mejor) +set.seed()para que sea reproducible. - Asume grupos “redondos” y de tamaño similar — formas alargadas o anillos (lo viste en el playground) lo confunden.
- Sensible a outliers — un punto extremo jala el centroide hacia sí y deforma el cluster.
- Solo variables numéricas — k-means calcula distancias; las categóricas no entran sin transformación previa. Y los ID numéricos tampoco: que
id_sociosea un número no significa que la “distancia” entre el socio 1001 y el 1280 mida algo.
Nada de esto invalida a k-means — es el algoritmo de segmentación más usado del mundo precisamente por simple, rápido e interpretable. Pero el analista que conoce las limitaciones lee los resultados con los ojos abiertos.
6 ¿Cuántos clusters? El codo, la silueta y el negocio
La pregunta más importante de la semana — y donde más se equivocan los principiantes. No existe un k “correcto” automático: hay dos métricas que orientan y un criterio de negocio que decide.
6.1 El método del codo
Corres k-means para k = 1, 2, 3, …, 8 y graficas la WCSS de cada uno. La WCSS siempre baja al agregar clusters (más bodegas = todo el mundo más cerca de alguna) — la pregunta no es dónde baja, sino dónde deja de bajar con ganas.
Piénsalo con las bodegas: con 1 bodega para toda Colombia, todo queda lejos. Con 2, mejora muchísimo. Con 3, bastante. Con 20… cada bodega nueva ya casi no acerca a nadie y sí cuesta. El codo es el punto donde la mejora marginal deja de justificar la complejidad.
6.2 La silueta
La silueta mira cada punto y pregunta: ¿estás más cerca de los de tu cluster que de los del cluster vecino? El coeficiente va de −1 a +1:
| Valor | Significado |
|---|---|
| Cerca de +1 | Bien asignado: pegado a los suyos, lejos de los demás |
| Cerca de 0 | En la frontera entre dos clusters |
| Negativo | Probablemente en el cluster equivocado |
Para elegir k se calcula la silueta promedio de cada candidato — y a diferencia del codo (que se lee “a ojo”), aquí sí hay un máximo que señalar con el dedo.
6.3 Entrena el ojo: la perilla de k
Un caso ilustrativo de segmentación de clientes, ya resuelto para k = 1…8. Mueve la perilla y aprende a leer las dos señales juntas:
Ojo: el codo no siempre es nítido. A veces la curva baja suave, sin quiebre obvio — el codo “duda” entre dos valores. Ahí es cuando la silueta rompe el empate… y cuando ni ella es clara, decide el criterio de la siguiente sección. Los tres hablan; tú firmas.
6.4 El criterio final: ¿los grupos sirven?
El codo y la silueta te dejan en un rango razonable de k. La decisión final es de negocio — hazle estas cuatro preguntas a cada agrupamiento candidato:
- ¿Puedo nombrar cada cluster? Si no puedes ponerle nombre descriptivo (“frecuentes de bajo monto”, “esporádicos de alto ticket”), probablemente no es un buen agrupamiento.
- ¿Puedo accionar sobre cada cluster? ¿Cada segmento recibiría una estrategia distinta? Si dos recibirían la misma acción, quizá deberían ser uno.
- ¿Los tamaños son razonables? Un cluster de 3 clientes entre 10.000 suele ser ruido… aunque a veces un grupo pequeño es un nicho valioso — el perfil decide, no el tamaño solo.
- ¿Es estable? Si otra corrida (u otro mes de datos) cambia los grupos drásticamente, no confíes en la segmentación.
Regla práctica: si el codo sugiere 4 y la silueta 3, perfila ambos y quédate con el que produzca segmentos más claros y accionables.
7 Perfilamiento: de números a decisiones
k-means devuelve etiquetas (1, 2, 3…) y aquí es donde muchos análisis mueren: “encontré 4 clusters” — ¿y qué? El trabajo valioso apenas empieza: hay que perfilar cada segmento hasta poder describirlo, nombrarlo y accionarlo.
El perfilamiento estándar tiene tres piezas:
- Tabla de promedios por cluster — para cada variable, el valor típico de cada segmento (+ el tamaño de cada grupo).
- Visualizaciones comparativas — un scatter coloreado por cluster y boxplots por variable: muestran separación y dispersión.
- Nombres de negocio — la traducción final.
Ejemplo: tabla de perfilamiento (clientes, 3 variables RFM)
| Cluster | Nombre sugerido | Monto prom. | Frecuencia | Recencia (días) | Tamaño |
|---|---|---|---|---|---|
| 1 | Frecuentes de bajo monto | $45.000 | 8.2 | 5 | 4.200 |
| 2 | Esporádicos de alto ticket | $320.000 | 1.1 | 45 | 1.800 |
| 3 | Inactivos | $28.000 | 0.3 | 120 | 4.000 |
Lectura: el cluster 1 compra seguido pero poquito → programa de lealtad con upgrades. El 2 compra poco pero gasta mucho → relación personalizada. El 3 lleva 4 meses sin aparecer → campaña de reactivación… o aceptarlos como perdidos y no gastar en ellos.
Nombrar es parte del análisis. Buenos nombres son cortos, descriptivos y orientados a la acción: “VIP dormidos”, “cazadores de ofertas”, “nuevos exploradores”. Malos nombres no dicen nada: “Grupo A”, “cluster grande”, “los del medio”. Si después de mirar la tabla no le encuentras nombre a un grupo, sospecha del agrupamiento (o del k).
El centroide es un promedio, no un cliente
Ningún miembro del cluster es idéntico al centroide — y los promedios engañan. Revisa siempre la dispersión dentro de cada cluster (boxplots) para saber qué tan homogéneo es de verdad el segmento. Y recuerda: las asignaciones no son certezas — un cliente puede estar en la frontera entre dos grupos (silueta ≈ 0).
8 Las alternativas (alto nivel)
k-means es el punto de partida, no la única opción. Dos alternativas que debes conocer de vista:
Clustering jerárquico 🌿
- No pide k de antemano: construye la jerarquía completa de fusiones y la “cortas” al nivel que quieras.
- Produce un dendrograma — el árbol que muestra cómo se van uniendo los grupos.
- Útil para explorar granularidad: ¿2 macro-segmentos o 6 micro-segmentos? El mismo dendrograma responde ambas.
- Desventaja: lento en bases grandes.
DBSCAN 🕵️ (opcional)
- Encuentra clusters de forma irregular (no solo “redondos”).
- Detecta outliers automáticamente: puntos que no pertenecen a ningún grupo.
- No pide k, pero pide otros dos parámetros (radio de vecindad y mínimo de puntos).
- Útil con grupos de formas raras o mucho ruido.
| Método | ¿Elegir k antes? | Forma de clusters | Outliers | Escalabilidad |
|---|---|---|---|---|
| k-means | Sí | Esféricos | Los absorbe (sensible) | 🟢 Muy buena |
| Jerárquico | No (cortas después) | Flexible | Moderado | 🟠 Limitada |
| DBSCAN | No | Arbitraria | 🟢 Los separa solos | Buena |
Para este curso, k-means es el algoritmo central; estas alternativas son contexto para que puedas mencionarlas cuando el problema lo amerite.
9 El pipeline completo de un proyecto de segmentación
Este es el guion — el mismo de la práctica, el taller y (si tu pregunta es de segmentación) tu proyecto final:
scale().set.seed() y nstart = 25.Conexión con el proyecto final
Si la pregunta de negocio de tu grupo es de segmentación, esta semana es literalmente tu proyecto: este pipeline de 7 pasos es la estructura de tu entrega final. Y la calidad se medirá donde siempre: en la interpretabilidad y accionabilidad de los segmentos, no en la sofisticación del algoritmo.
10 Errores frecuentes
Los seis pecados del clustering
- No escalar — el error #1. El clustering termina reflejando unidades, no comportamiento.
- Meter variables irrelevantes — IDs numéricos, códigos postales “numéricos”… distorsionan la distancia. Selecciona con la pregunta de negocio en la mano.
- Elegir k solo con el codo — el codo orienta; valida con silueta y, sobre todo, con interpretabilidad.
- Reportar clusters sin perfilar — “hay 4 grupos” no le sirve a nadie; los nombres y las acciones son el entregable.
- Tratar las asignaciones como certezas — hay puntos en la frontera; la segmentación es una simplificación útil, no una verdad.
- Leer el centroide como “el cliente típico” — es un promedio; mira la dispersión antes de describir el segmento.
11 ¿Y en tu semestre?
- En la práctica de esta semana segmentarás a los 8.000 clientes de Cóndor por recencia, frecuencia y monto, y cruzarás los segmentos con el riesgo y el valor en riesgo de las semanas 11 y 12: ¿dónde está la plata en riesgo? Todo el pipeline: escalar, codo, silueta, perfilar, nombrar.
- En el taller te toca el rol completo de consultor: un gimnasio te entrega su base de socios y una segmentación mal hecha que tendrás que auditar antes de construir la buena. No digo más.
- Y ojo al calendario: la próxima semana es el parcial 2 — esta teoría (más las semanas 10-12) es el material. El pipeline, las métricas y el porqué de cada paso; no la memoria de ningún número.
12 Para pensar 🧠
- Tu banco te tiene, con certeza, dentro de un cluster. ¿Qué variables crees que usaron? ¿Qué nombre le pondrías al segmento donde caes… y qué campaña te están mandando por estar ahí?
- Spotify Wrapped te dice cada diciembre “tu año en música”. ¿Dónde ves las huellas de un clustering ahí? ¿Qué decisión de negocio toma Spotify con esos grupos?
- Si corres k-means dos veces y obtienes grupos distintos, ¿cuál de los dos es “el verdadero”? (Pista: la pregunta está mal planteada — ¿por qué?)
13 Checklist de la semana
Antes de la clase, deberías poder marcar todas:
14 Preguntas de comprensión
1. ¿Supervisado o no supervisado? Un banco tiene 50.000 clientes con saldo promedio, número de productos, antigüedad y frecuencia de transacciones digitales. Quiere identificar perfiles de clientes para ofertas personalizadas, pero no existe ninguna variable que diga a qué perfil pertenece cada uno. ¿Qué tipo de problema es y por qué?
Ver respuesta
No supervisado: no hay target que indique los grupos — el algoritmo debe descubrirlos a partir de los patrones. Señal adicional: la entrega no se evalúa con “accuracy contra la respuesta”, sino con la utilidad de los perfiles descubiertos.2. El clustering que solo veía plata. Un analista corre k-means con ingreso anual (rango $10M–$200M) y compras mensuales (rango 1–30). Los clusters separan casi perfectamente por ingreso e ignoran la frecuencia. ¿Qué pasó y cómo se corrige?
Ver respuesta
No escaló. El ingreso tiene un rango miles de veces mayor, así que domina el cálculo de distancias y la frecuencia se vuelve invisible. Se corrige conscale() antes de kmeans(): ambas variables quedan en media 0 y desviación 1, y pesan igual.
3. Codo vs. silueta. Corres k-means para k = 1…6 y obtienes WCSS = 8500, 5200, 3800, 3100, 2900, 2800, y silueta promedio (k = 2…6) = 0.41, 0.52, 0.49, 0.38, 0.33. El gerente pregunta: “¿cuántos segmentos hago?” ¿Qué respondes y con qué argumento?
Ver respuesta
El codo es ambiguo entre 3 y 4 (las caídas: −3300, −1400, −700, −200, −100 — el quiebre fuerte termina entre 3 y 4). La silueta rompe el empate: máximo en k = 3 (0.52). Respuesta profesional: “los indicadores apuntan a 3; déjame perfilar 3 y 4, y confirmo con cuál los segmentos se pueden nombrar y accionar mejor”.4. Ponles nombre. Tras k-means con k = 3 sobre clientes obtienes: C1: monto $380.000, frecuencia 1.2/mes, recencia 60 días (n = 2.100); C2: $52.000, 7.5/mes, 4 días (n = 5.400); C3: $15.000, 0.4/mes, 180 días (n = 2.500). Nombra cada cluster y propón una acción por segmento.
Ver respuesta
C1 “Alto ticket esporádico / premium dormido” → relación personalizada, acceso anticipado a lanzamientos. C2 “Leales cotidianos de bajo monto” → programa de lealtad con upgrades y venta cruzada. C3 “Inactivos / en riesgo” → campaña de reactivación con incentivo; si no responden, dejar de invertir en ellos. (Cualquier nombre específico y accionable vale; “Grupo A” no.)15 Material adicional (opcional)
- ISLR — An Introduction to Statistical Learning, capítulo 12 (Unsupervised Learning): k-means y jerárquico con ejemplos visuales — gratis online
- StatQuest: K-means clustering (inglés, 8 min) — la mecánica del algoritmo dibujada paso a paso → youtube.com/watch?v=4b5d3muPQmA
- from-data-to-viz.com — para elegir los gráficos cuando perfiles tus clusters → data-to-viz.com
Con el video de la clase, este documento y el quiz es suficiente para llegar a la práctica. Nos vemos en clase. 🎧
Los recursos de esta semana → esta teoría continúa en la práctica guiada en clase y cierra con el taller evaluable.