Resumen
El episodio 159 de enCoders explica qué es el Data Leakage (filtración de datos) en Machine Learning: información que se cuela donde no debería y produce métricas demasiado optimistas. Se presentan cuatro tipos principales: target leakage, temporal leakage, feature leakage y train-test leakage. Se discuten casos reales (una base histórica que se sobrescribía y una variable de ejecutivo de call center) y señales de alerta, como un AUC sospechosamente alto o una curva ROC pegada arriba. Se explica por qué el escalado, la imputación de nulos, el percentil y la selección de variables deben ajustarse solo con el set de entrenamiento. Se debate qué pasa con el test cuando se usa repetidamente, y se propone un dataset de validación más reciente que nunca se toque. Se cierra con un ejemplo de target leakage con datos del Titanic y consejos prácticos. La conclusión principal: dividir en entrenamiento y test antes de cualquier transformación, crear la lógica solo con entrenamiento y no mirar el test hasta evaluar.
Capítulos
- 00:00IntroSe presenta el tema: el Data Leakage es un problema muy común y engañoso en ciencia de datos. Se anuncian ejemplos, tipos, código y una comparación entre trabajar con y sin leakage; se aclara que "leakage" es una filtración, como en una tubería o en ciberseguridad.
- 00:42Entendiendo la Filtración de Datos en Machine LearningEn ML significa que datos salen sin querer de una parte y llegan a otra donde no deberían estar. Se hace un sondeo en el chat sobre quién conocía el término y se comenta que un AUC inesperadamente bueno es una forma de descubrirlo.
- 04:21Ejemplo de MatiEn un modelo de propensión a la fuga, el AUC era demasiado alto. Tras revisar variable por variable, descubrió que los NA de una variable explicaban la fuga, porque la base histórica se sobrescribía y quienes se iban quedaban con valores vacíos.
- 06:06Target LeakageSe define como una variable del futuro relacionada con el target que se filtra al dataset de entrenamiento. Se explica que las bases para reportería se actualizan y conviene tener cuidado al usarlas para modelar.
- 07:49Preguntas y Respuestas e Interacción con la AudienciaSe discute si hacer EDA con el target sobre todos los datos es leakage (sutil, pero conviene separar primero) y cuándo hacer la matriz de correlación. También se habla de qué métricas sospechar: si es muy buena en entrenamiento y test, hay que desconfiar.
- 14:12Estudio de Caso: Filtración de Datos en Call CenterEjemplo de fuga de clientes con la variable "último ejecutivo con el que habló": el ejecutivo de retención concentra a los que se van, pero esa información no se tiene al momento de predecir. Se menciona un video de DataRobot como fuente y se aclara que una variable que explica casi todo suele indicar un problema.
- 28:53Temporal LeakageEn series de tiempo no se debe dividir aleatoriamente, sino hacer un corte temporal; también se describe una validación cruzada con ventanas móviles. Se discute además cómo se ve la curva ROC con muchos scores en el tope.
- 36:38Variables ID y Filtración de DatosEl ID puede ser memorizado por el modelo o contener orden relacionado con el target, por lo que no se usa en el modelo, pero se guarda para reasociar las predicciones. Se menciona el feature leakage como variable no disponible en producción.
- 41:09MemesPausa de memes de la comunidad. Se recomienda reiniciar la sesión del kernel cuando algo falla y trabajar con un subconjunto de los datos para probar el código antes de ejecutar con todo.
- 46:21Conversación sobre tecladosCharla informal sobre teclados mecánicos (switches red, teclados ergonómicos y separados).
- 50:04Train-Test LeakageSe introduce la contaminación entre entrenamiento y test, normalmente por el preproceso.
- 51:09Problema con Escalamiento de DatosEscalar todo el dataset antes de dividir calcula media y desviación con información de test. Los modelos basados en árboles no necesitan escalado, pero redes neuronales y regresión lineal sí; el efecto puede ser pequeño (p. ej., 0,85 que parece 0,86) y se va acumulando.
- 55:55Algunas otras formas de contaminar datos con Data Leakage y por qué no hay que mirar el test setSe agregan percentiles, selección de variables e imputación; se debate qué pasa cuando el test se usa varias veces y se sobreajusta a él. Se propone un dataset de validación más reciente y nunca visto, y se habla de cuándo se justifica relajar el rigor con pocos datos.
- 01:11:00Problemas al imputar nulosImputar con un modelo antes de dividir filtra información en ambas direcciones. Primero se divide y luego se imputa con la lógica creada solo con entrenamiento; si el reemplazo no depende de los datos (p. ej., cero por morosidad), el orden es irrelevante.
- 01:13:04Evitando la Filtración de DatosSe recomienda aplicar al test la misma lógica de preproceso ajustada con entrenamiento, y no hacer un "monolito" sino funciones, clases o scripts reutilizables. Se debate el costo de tiempo y la presión de las jefaturas, y los panelistas dan consejos pragmáticos como empezar con modelos simples y MVP rápidos.
- 01:24:05Ejemplo de target leakage con códigoCon datos del Titanic y variables artificiales (entrevista post rescate, testimonio, compensación) solo existentes si la persona sobrevivió. Sin ellas el desempeño baja (se menciona 78 vs. un valor mayor) y suben sensibilidad, especificidad y kappa con el leakage.
- 01:30:08CierreDebate sobre si imputar mejora realmente el desempeño; se concluye que lo que más ayuda es entender las variables del fenómeno. Se resume el consejo (dividir primero, usar solo entrenamiento para crear la lógica) y se cuenta un caso de leakage temporal por ventanas traslapadas.