Saltar al contenido

lección 5

Jueves: los grupos solo miraban el recibo

¿Qué variable separa de verdad a los grupos? Solo el consumo total: domina la distancia y los ratios apenas distinguen. Qué escalar y qué codificar.

⏱ 55 min

## Jueves, 9:30. La pregunta de Baltasar

Llegas con los cuatro grupos del miércoles y una silueta de 0,550 que, de camino, has estado a punto de enseñarle a Rosalía. Baltasar mira la pantalla, asiente despacio y no celebra nada. En vez de eso te hace una pregunta, la misma que hace siempre: «Vale, cuatro grupos y una silueta preciosa. Antes de contárselo a nadie: dime qué variable los separa de verdad. Si lo único que cambia de un grupo a otro es el consumo total, no has segmentado por cómo consume la gente; los has ordenado por el tamaño del recibo. Y eso, para una tarifa, no vale.» No te da la respuesta. Te manda a buscarla, y el resto del día es exactamente eso.

La forma de contestarle no es filosofar, es medir. Si los grupos se distinguen de verdad por su patrón, los ratios de franja (noche, tarde, día) tendrían que cambiar mucho de un grupo a otro: un grupo nocturno con ratio_noche alto, otro de tarde con ratio_tarde alto, etcétera. Si, en cambio, lo único que cambia mucho entre grupos es el consumo total, entonces Baltasar tiene razón: el modelo ha ordenado a los clientes por volumen y los ratios están prácticamente planos. La prueba es cuantificable, así que la vas a cuantificar: ¿cuánto varía cada feature entre los centros de los grupos?

La respuesta a Baltasar en una imagen: el consumo total varía muchísimo entre grupos (barra ámbar), pero los ratios de franja apenas se mueven (barras verdes diminutas). Lo que separa a los grupos es casi exclusivamente el volumen, no el patrón. Las cifras concretas salen de los ejercicios; la forma es la que importa.

## Por qué pasa esto: la distancia la domina el número grande

Entender el síntoma (los grupos son de volumen) no basta; hay que entender la causa, porque es la que da la solución. Y la causa es puramente aritmética. K-Means mide la distancia entre dos clientes sumando las diferencias al cuadrado de cada feature. Imagina dos clientes que se diferencian en 100 kWh de consumo y en 0,5 de ratio_noche. La contribución del consumo a la distancia es 100 al cuadrado, 10.000. La del ratio es 0,5 al cuadrado, 0,25. El consumo pesa cuarenta mil veces más. Da igual que para describir a un cliente el ratio_noche sea tan informativo como el consumo: en la distancia, el ratio es invisible. El algoritmo no es tonto, es que le estás dando las features en escalas que lo obligan a mirar solo la grande.

Consejo de senior: la analogía que usa Baltasar para esto es la de medir personas sumando su altura en milímetros y su número de hijos. "Uno mide 1.750 mm y tiene 2 hijos; otro mide 1.600 mm y tiene 5 hijos. Si sumas sin pensar, la diferencia de altura (150) aplasta la de hijos (3), y acabas agrupando a la gente por estatura cuando querías agruparla por tamaño de familia." Escalar es ponerlo todo en la misma vara de medir, para que cada cosa cuente lo que de verdad vale, no lo que marca su unidad.

La solución, entonces, se dibuja sola: antes de medir distancias, hay que poner todas las features en la misma escala. A eso se le llama escalar (o estandarizar), y la herramienta es StandardScaler: a cada feature le resta su media y la divide por su desviación típica, de modo que todas pasan a moverse en el mismo rango (centradas en 0, con desviación 1). Así una diferencia de "una desviación" en el consumo pesa lo mismo que una diferencia de "una desviación" en el ratio_noche, y el algoritmo puede ver el patrón. Pero ojo: el consumo y los ratios son numéricos; la tarifa y la provincia son texto. Esas no se escalan, se codifican. Y eso te lleva al reparto que vas a hacer hoy: qué columna recibe qué trato.

StandardScaler lleva cada feature numérica a la misma escala (centrada en 0, desviación 1), de modo que el consumo y los ratios pesen lo mismo en la distancia. Las columnas de texto (tarifa, provincia) no se escalan: se codifican. Ese reparto —qué va a escalar y qué a codificar— es la clasificación de hoy.

Si te cuesta ver por qué una escala aplasta a la otra, míralo en un plano. Dibuja a los clientes con el consumo en el eje horizontal y el ratio_noche en el vertical, cada uno en su unidad real. El consumo se despliega de 56 a 217; el ratio, de 0 a 1. El resultado es una nube larguísima y plana, estirada de lado a lado y aplastada de arriba abajo: los clientes solo se diferencian a lo ancho. K-Means, que corta por donde hay distancia, parte esa tira en bandas verticales, y cada banda es un tramo de consumo. El ratio, encajado en un milímetro de altura, no tiene sitio para separar nada. Y aquí hay un giro que verás mañana: como todos los clientes consumen un total parecido, esa tira ni siquiera es tan larga; el modelo acaba partiendo por diferencias de volumen minúsculas, que es lo contrario de lo que importa.

Lo que la prosa no enseña tan rápido: en su escala real, los clientes forman una tira larga y plana porque el consumo se despliega de 20 a 260 y el ratio apenas de 0 a 1. K-Means corta esa tira en bandas verticales (líneas ámbar), que son tramos de consumo. El ratio_noche, aplastado contra el eje, no puede separar a nadie. Escalar es lo que infla el eje vertical para que el patrón vuelva a contar.

Regístrate para guardar tu progreso.