Saltar al contenido

lección 6

Jueves: escalar bien con un Pipeline

Escalar dentro de un Pipeline con ColumnTransformer: la silueta baja de 0,550 a 0,441, y esa bajada es la paradoja: el número peor es el modelo mejor.

⏱ 60 min

## Jueves, 12:00. Montar el modelo como debe estar

Ya tienes el diagnóstico y la causa: los grupos salían por volumen porque el consumo, al no estar escalado, aplastaba a los ratios en la distancia. Y tienes el reparto de columnas: siete numéricas a escalar, y la tarifa y la provincia fuera. Lo que falta es montarlo, y montarlo de la forma que no se te pueda olvidar nunca. Aquí es donde Baltasar insiste con una herramienta: el Pipeline. En vez de escalar las features en una línea suelta y luego, aparte, pasarlas a K-Means —donde es facilísimo olvidarse del escalado, o escalar mal, o escalar unas columnas sí y otras no—, se encadena todo en un solo objeto: primero el preprocesado, después el modelo. Un Pipeline es una tubería donde los datos entran crudos por un extremo y salen agrupados por el otro, pasando por cada paso en orden.

Y como no todas las columnas de la tabla deben entrar, el primer paso del Pipeline es un ColumnTransformer: un repartidor que aplica StandardScaler a la lista de columnas numéricas que le das y deja fuera todas las demás (por defecto, lo que no le nombras se descarta). Así la tarifa y la provincia no pueden colarse en la distancia aunque vengan en la tabla. Si algún día añades una columna categórica que sí deba entrar, se le pone su propio tratamiento al lado (por ejemplo, OneHotEncoder). Esa es la frase de Baltasar hecha código: "el preprocesado es parte del modelo; móntalo en un Pipeline para no colártelo". No es una comodidad: es la garantía de que el preprocesado se aplica siempre, igual, y solo a las columnas que toca.

El Pipeline encadena el preprocesado y el modelo en un solo objeto. El ColumnTransformer reparte: escala las siete numéricas y deja fuera la tarifa y la provincia, que no deben formar los grupos con los que luego se recomienda tarifa. La ventaja no es escribir menos: es que el escalado deja de ser un paso suelto que se puede olvidar o hacer a medias. Va dentro del modelo, que es donde Baltasar dice que vive.

## La paradoja: la silueta baja y eso está bien

Cuando reentrenes con el escalado dentro del Pipeline va a pasar algo que, si no estás preparado, parece un paso atrás: la silueta baja. De 0,550 sin escalar a 0,441 con el escalado. Tu primer instinto —el de cualquiera— sería pensar "lo he empeorado, vuelvo a lo de antes". Es exactamente el error que Baltasar quiere que no cometas. La silueta mide la geometría: cómo de separados están los grupos. Sin escalar, los grupos estaban separadísimos... en una sola dimensión, el consumo, porque era la única que contaba. Con escalado, el modelo reparte el peso entre siete features y los grupos se separan en un espacio de verdad multidimensional, donde ninguna partición queda tan limpia como una banda de volumen. La silueta baja porque mide una separación más honesta y más difícil. El número peor describe el modelo mejor.

Esta es la trampa que da nombre al caso, y es sutil: una silueta más alta NO es un modelo mejor si está midiendo la dimensión equivocada. La silueta de 0,550 era real, pero medía lo compactos que quedaban cuatro escalones de recibo. La de 0,441 mide lo compactos que quedan cuatro patrones de consumo, que es lo que de verdad quieres. Fiarte del número más alto sin preguntarte QUÉ está midiendo es cómo se cuela este error en producción. La métrica no sabe para qué quieres el modelo; eso lo sabes tú.

La paradoja en una imagen. A la izquierda, sin escalar, los grupos son bandas separadas a lo largo de una sola dimensión (el consumo): por eso la silueta sale más alta. A la derecha, escalado, los mismos clientes se reparten en nubes por su patrón, en un espacio de varias dimensiones donde ninguna partición queda tan limpia: la silueta baja, pero esos grupos son los que sirven. El número peor describe la geometría más honesta.

Y una vez el modelo está bien montado, por fin puedes mirar con rigor lo que el miércoles no podías: cuántos grupos, con el codo y la silueta, ahora con el mismo preprocesado que el modelo. El miércoles te avisé de que hacerlo sin escalar engañaba (la silueta máxima caía en k=2, dos bandas de volumen). Con los datos bien preparados la silueta sube de k=2 a k=3 y de k=3 a k=4, y la inercia deja de bajar deprisa a partir de ahí. Pero k=4 y k=5 salen empatados en silueta (0,4406 y 0,4465: la de k=5 es incluso un pelo más alta). Una diferencia así no decide nada: con otra muestra de clientes podría salir al revés. Cuando la métrica empata, decide para qué sirven los grupos. Y mirando los grupos, k=5 no añade un patrón nuevo: separa a unos 50 clientes que gastan más (~174 kWh) sacándolos de los cuatro patrones, es decir, vuelve a cortar por volumen. Para repartir tarifas por patrón, eso no sirve. Por eso te quedas con cuatro. O sea que Rosalía se quedaba corta con tres: hay cuatro patrones de consumo. Ese cuarto grupo, el que ella no había pensado —el de la curva plana sin picos—, va a resultar valioso para entender la cartera.

La silueta por k, calculada con el mismo preprocesado que el modelo: sube hasta k=4 y k=5, que empatan (0,4406 y 0,4465), y luego baja. Esa diferencia no decide nada. Lo que decide es mirar los grupos: con k=5 el quinto grupo son ~50 clientes de más consumo sacados de los cuatro patrones, un corte por volumen que no sirve para una tarifa. Por eso cuatro. Y Rosalía no lo sabía: son cuatro patrones, no tres.

Regístrate para guardar tu progreso.