Unidad 6 - Clustering: fundamentos y métricas
Introducción al Business Analytics · Semana 13 · 06278-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 está en Intu. 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 en Intu antes 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?
- ¿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? (la de la práctica)
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 serás el analista de una plataforma de streaming: segmentarás canciones por su sonido (no por el género declarado — spoiler: no coinciden del todo) para armar listas de reproducción con nombre y personalidad. 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. 🎧