Codificación de variables y escalado

Mapa conceptual
- Calidad de Datos
- Faltantes
- MCAR
- MAR
- Imputación
- Atípicos
- IQR
- Z-score
- Codificación
- One-hot
- Label
- Escalado
- Deduplicación
- Similitud
- Fuzzy
- Pipelines
- Reproducibilidad
- Versionado
- Faltantes
El problema de lo categórico
Muchas variables son etiquetas, no cantidades: color, ciudad, tipo de producto. No tienen orden ni distancia natural. Convertirlas en números arbitrarios (1, 2, 3) les inventa una magnitud y un orden que no existen, y el modelo lo creerá.
Codificación one-hot
La opción segura para categorías nominales sin orden: una columna binaria por categoría. «Rojo», «Azul», «Verde» pasan a tres indicadores. El modelo trata cada categoría como independiente, sin jerarquías inventadas.
El precio de one-hot
Con muchas categorías, one-hot revienta la dimensionalidad y crea columnas casi siempre cero, dispersas. Además, en modelos lineales aparece colinealidad si se incluyen todas más el término independiente: hay que dejar una fuera o quitar el intercepto.
Codificación ordinal
Cuando las categorías sí tienen orden (bajo, medio, alto), una codificación entera respeta esa monotonía. Cuidado: asignar 1, 2, 3 implica también un espaciado uniforme que puede no reflejar las diferencias reales entre niveles.
Codificación por frecuencia
Sustituir cada categoría por su frecuencia relativa en los datos da una señal numérica que correlaciona con lo común de la categoría. Útil para cardinales altas, pero puede inducir a error si la frecuencia no es informativa para la respuesta.
Target encoding
Reemplazar una categoría por la media de la variable objetivo en esa categoría puede ser muy predictivo, pero es un campo minado de fuga: si se calcula con los datos completos, el modelo «ve» la respuesta. Solo es válido con suavizado y estimación fuera de la muestra.
Suavizado en target encoding
Para categorías raras, la media empírica es ruido. El suavizado mezcla la media de la categoría con la media global, ponderando por el número de observaciones, de modo que las clases con pocos casos no dominen por azar.
Embeddings como codificación
En modelos modernos, las categorías se aprenden como vectores densos (embeddings) que capturan semejanza entre niveles. Con muchas categorías y datos suficientes, superan a one-hot; con pocos datos, sobreajustan.
Por qué escalar
Muchos algoritmos miden distancias o gradiente, y una variable en kilómetros dominará a otra en probabilidades simplemente por su escala. El escalado pone todas las continuas en pie de igualdad para que el modelo no privilegie a las de unidades grandes.
Estandarización z-score
Restar la media y dividir por la desviación típica centra cada variable en cero con dispersión uno. Ideal para métodos sensibles a la varianza y a la normalidad (regresión lineal, PCA). Sigue siendo sensible a atípicos, porque media y desviación lo son.
Normalización min-máx
Reescalar cada variable al intervalo de cero a uno. Conserva la forma de la distribución pero es extremadamente frágil a atípicos: un valor máximo desbocado aplasta al resto de datos contra un extremo.
Escalado robusto
Usar mediana y rango intercuartílico en lugar de media y desviación típica da un escalado que los atípicos apenas mueven. Recomendable cuando las colas son pesadas o no se quiere que un extremo domine la transformación.
Cuándo NO escalar
Los modelos basados en árboles e integran divisiones por umbral en cada variable, insensibles a la escala: escalarles no cambia nada. En cambio, en vecinos más próximos, SVM de núcleo radial o descenso de gradiente el escalado es decisivo.
Fuga en el transformador
Calcular medias, mínimos o estadísticos de codificación sobre todo el dataset y luego partirlo contamina el conjunto de prueba con información de entrenamiento. El transformador debe ajustarse solo con entrenamiento y aplicarse sin cambios a prueba y producción.
Errores frecuentes
- Codificar una categoría nominal con enteros, regalando al modelo un orden inexistente.
- Escalar con min-máx y dejar que un atípico comprima toda la variable a un extremo.
- Ajustar el transformador sobre el dataset completo antes de dividir, filtrando información.
Aplicar target encoding (media de la respuesta por categoría) calculada sobre todo el dataset es peligroso porque:
Escalar (centrar y dividir) una variable no cambia en absoluto el ajuste de un modelo de árboles de decisión.
Encoders y su persistencia
El mapeo de categorías a columnas debe guardarse, no recrearse en producción: si un valor nuevo no estaba en entrenamiento, hay que decidir (cero, categoría «otro», error). La coherencia entre entrenar y servir vive en el transformador serializado.
Categorías unseen
El mundo produce etiquetas que no existían al entrenar. Una estrategia robusta reserva una categoría por defecto o agrupa las poco frecuentes, para que un valor nuevo no rompa el pipeline ni caiga en un hueco silencioso.
Codificar y escalar
Toca una tarjeta para ver la respuesta.
Ordena la decisión para una variable:
Arrastra cada ficha a su categoría (o tócala y luego toca la categoría). También puedes usar el teclado.
scikit-learn preprocessingReferencia canónica de codificadores y escaladores y su correcto uso en pipelines.
Vas a entrenar un modelo lineal con una categoría de quinientos niveles y dos continuas de escalas muy distintas. ¿Qué codificación y qué escalado eliges, y por qué?
Tu texto se guarda sólo en este dispositivo.
Documentación pandasGuía de referencia para limpieza de datos.
Comentarios
Inicia sesión para comentar.
Todavía no hay comentarios. Sé la primera persona en opinar.