Target Encoding sin fuga de datos: LOO y K-Fold contra la ilusión de calidad
El target encoding parece una forma simple de procesar features categóricas, pero una implementación ingenua filtra silenciosamente el target en el conjunto…
Procesado por IA desde Habr AI; editado por Hamidun News
Target encoding es un método popular para codificar características categóricas, pero su implementación ingenua infla sistemáticamente las métricas e crea la ilusión de un modelo bueno que se desmorona en producción.
Qué es target encoding
Target encoding reemplaza cada valor único de una característica categórica con el valor promedio de la variable objetivo en todos los objetos de esa categoría. Para la característica "ciudad", cada ciudad recibe el promedio de ventas en todos los clientes de ella. Para la característica "navegador" — la conversión promedio en todas las sesiones con ese navegador. Una columna numérica en lugar de cientos de binarias.
El método es particularmente atractivo con alta cardinalidad: en lugar de cientos de columnas binarias de One-Hot Encoding, queda una única característica numérica compacta que lleva directamente información sobre la relación categoría-objetivo. Por eso target encoding se usa activamente en competiciones de Kaggle y en pipelines ML industriales — el modelo recibe una entrada informativa que se entrena rápidamente y es fácil de interpretar.
De dónde viene la fuga
El problema surge en el momento de calcular el promedio. Una implementación ingenua calcula el encoding en toda la muestra de entrenamiento — incluyendo el objeto actual. Como resultado, el objetivo de este objeto participa en el cálculo de la característica que luego se pasa al modelo como entrada durante el entrenamiento. El modelo efectivamente ve la variable objetivo de forma oculta — no directamente, sino a través de esta característica.
Las consecuencias de tal fuga son predecibles:
- Las métricas en el entrenamiento y validación cruzada se ven excelentes — el modelo "sabe" la respuesta a través de la característica
- El modelo memoriza ruido y valores atípicos de objetos específicos, no patrones reales
- En la prueba o en producción, la calidad cae drásticamente — ahí el encoding se calcula del entrenamiento sin el objeto actual
- Cuanto menor sea el número de objetos en la categoría — más fuerte la fuga: con un objeto, el encoding simplemente iguala el objetivo
- El efecto es invisible bajo verificaciones de métricas estándar, pero se manifiesta en pruebas A/B en producción
Esta es una trampa clásica: todo se ve perfecto hasta el despliegue, después del cual el modelo resulta ser inútil. Muchas soluciones competitivas de Kaggle mostraban CV brillante precisamente por esta razón, pero no sobrevivieron la verificación final.
LOO y K-Fold: cómo calcular correctamente
Ambos enfoques resuelven una tarea: al calcular el encoding, no usar el valor objetivo del objeto.
Leave-One-Out (LOO) al codificar cada objeto excluye su valor del cálculo del promedio. Formalmente: el promedio del objetivo en todos los objetos de la misma categoría, excepto el actual. La dependencia directa se rompe, la información sobre la distribución de la categoría se preserva. La implementación es simple y determinística.
Encoding K-Fold funciona diferentemente. La muestra de entrenamiento se divide en K folds. Para cada fold, el encoding se calcula solo de los K-1 folds restantes, luego se aplica al fold "retenido". El esquema es análogo a la validación cruzada: ningún objeto participa en el cálculo de su propio encoding.
"Una característica honesta es aquella que se calcula durante el
entrenamiento exactamente como se calculará en producción."
Cada método tiene sus matices: LOO es determinístico y agrega ruido mínimo, pero con categorías pequeñas (1-2 objetos) permanece vulnerable a fugas residuales. K-Fold introduce ruido de regularización debido a la división aleatoria — esta es una característica útil, no un error. Para ambos métodos, una regla es importante: el encoding para la muestra de prueba siempre se calcula de toda la muestra de entrenamiento en conjunto, sin LOO ni K-Fold — es exactamente cómo funcionará en producción.
Qué significa esto
Target encoding sigue siendo una herramienta poderosa para trabajar con características categóricas, pero requiere una implementación cuidadosa. El enfoque ingenuo crea una ilusión de calidad — métricas bonitas que no sobrevivirán a la producción. LOO y K-Fold proporcionan características honestas: los números de validación reflejan la verdadera capacidad de generalización del modelo, no un artefacto de fuga de datos. Si las métricas parecen demasiado buenas — el encoding debe verificarse en primer lugar.
¿Quieres dejar de leer sobre IA y empezar a usarla?
AI News es un feed curado de noticias de IA. Hamidun Academy te enseña a usar la IA en tu trabajo.