Ayudando a tu Modelo a Aprender la Señal Verdadera
En el mundo del Machine Learning, a menudo nos encontramos con modelos que, a pesar de su sofisticación, no logran generalizar bien a datos nuevos. Un factor crítico, pero a veces subestimado, es la presencia de datos influyentes: observaciones que, aunque no sean necesariamente errores, distorsionan la capacidad del modelo para aprender patrones generalizables. Este artículo explora una técnica para identificar y gestionar estos puntos de datos disruptivos, permitiendo que los modelos capturen de manera más efectiva las tendencias dominantes en los datos.
El Problema de los Datos Influyentes
Imagine que está creando un modelo para predecir el riesgo de impago de préstamos, utilizando características como ingresos y historial crediticio. Algunos solicitantes con ingresos relativamente bajos parecen pagar grandes préstamos sin problemas, lo que podría confundir al modelo. En realidad, habían ingresado sus ingresos en dólares estadounidenses en lugar de su moneda local, pero esto no se detectó durante la entrada de datos, haciéndolos parecer menos solventes de lo que realmente eran.
O suponga que está construyendo un modelo para predecir los tiempos de recuperación de pacientes. La mayoría de los pacientes siguen trayectorias de recuperación esperadas, pero algunos experimentaron complicaciones muy raras que no fueron registradas. Estos casos se sitúan lejos del resto en términos de la relación entre síntomas, tratamientos y resultados. No son necesariamente "incorrectos", pero son disruptivos, causando que el modelo generalice mal a la mayoría de los futuros pacientes.
En ambos escenarios, el problema no es solo ruido o anomalías clásicas. El problema es más sutil:
Algunas observaciones interrumpen desproporcionadamente la capacidad del modelo para aprender la señal dominante.
Estos puntos de datos pueden:
- Tener una influencia desproporcionada en los parámetros aprendidos.
- Provenir de contextos inusuales o no modelados (por ejemplo, complicaciones raras o problemas de entrada de datos).
- Y lo más importante, reducir la capacidad del modelo para generalizar.
La confiabilidad y la precisión predictiva de un modelo pueden verse comprometidas significativamente por estos puntos de datos que ejercen una influencia indebida en sus parámetros o predicciones. Comprender y gestionar eficazmente estas observaciones influyentes no es simplemente una formalidad estadística, sino una piedra angular de la construcción de modelos robustos y fiables.
Cook's Distance: Una Inspiración Reinterpretada
La Distancia de Cook es una herramienta de diagnóstico clásica de la regresión lineal. Cuantifica cuánto influye un solo punto de datos en el modelo:
- Entrenando el modelo en el conjunto de datos completo.
- Reentrenándolo con una observación omitida.
- Midiendo cuánto cambian las predicciones calculando la suma de todos los cambios en el modelo de regresión con y sin la observación.
Una Distancia de Cook grande significa que una observación tiene una alta influencia y posiblemente está distorsionando el modelo, y debe verificarse su validez.
¿Por qué Cook's D?
El enfoque de influencia de Cook's-D es particularmente adecuado para identificar puntos de datos que distorsionan los patrones aprendidos de un modelo, una deficiencia que a menudo dejan de lado otras técnicas de detección de valores atípicos.
- Detección univariada: Los métodos univariados (como las puntuaciones Z o las reglas IQR) identifican valores extremos dentro de características individuales o solo la variable objetivo. Sin embargo, los puntos que influyen significativamente en la predicción de un modelo complejo pueden parecer perfectamente normales cuando cada una de sus características se examina de forma aislada. Son "valores atípicos" no por sus valores individuales, sino por su relación con los datos generales y la estructura del modelo.
- Detección de anomalías centrada en las características: Técnicas como Isolation Forest o Local Outlier Factor (LOF) destacan en la detección de anomalías puramente en función de la distribución y la densidad de las características de entrada (X). Si bien son valiosas para identificar entradas de datos inusuales, inherentemente no consideran el papel de la variable objetivo (Y) o cómo un modelo usa las características para predecirla. En consecuencia, un punto de datos marcado como valor atípico en el espacio de características podría no tener necesariamente un impacto desproporcionado en el rendimiento predictivo general o el patrón aprendido general de su modelo. Por el contrario, un punto no marcado por estos métodos podría seguir siendo muy influyente en las predicciones del modelo.
- Métodos estándar basados en residuos: Los residuos, la diferencia entre los valores reales y los valores predichos, resaltan dónde el modelo tiene un mal desempeño. Si bien esto indica una desviación, no distingue entre si el punto es simplemente ruidoso (por ejemplo, impredecible pero inofensivo) o verdaderamente disruptivo, es decir, "tirando" toda la superficie predictiva del modelo lejos del patrón general establecido por la mayoría de los datos. Podríamos tener puntos con residuos altos pero poca influencia, o aquellos con residuos moderados pero que distorsionan desproporcionadamente las predicciones del modelo.
Aquí es donde una métrica de influencia al estilo Cook's-D realmente brilla. Va más allá del tamaño del error de predicción para preguntar:
¿Cuán estructuralmente desestabilizador es un solo punto de datos para todas las relaciones aprendidas del modelo?
Tal enfoque nos permite identificar y gestionar quirúrgicamente los puntos de datos que alejan desproporcionadamente las predicciones del modelo del "patrón general" reflejado en el resto de los datos.
Esto es crucial cuando la robustez y la generalización son primordiales pero difíciles de garantizar, por ejemplo, en herramientas de diagnóstico donde algunos registros de pacientes inusuales podrían sesgar las predicciones para la población más amplia, o en el modelado de detección de fraude, donde el conjunto de entrenamiento contiene falsos negativos porque no todas las transacciones o reclamaciones han sido auditadas.
En esencia, si bien otros métodos nos ayudan a encontrar datos "raros", el enfoque tipo Cook's nos ayuda a encontrar puntos de datos que hacen que nuestro modelo sea "raro" en su comportamiento general.
Limitaciones y Adaptaciones
Sin embargo, esta técnica clásica tiene sus limitaciones:
- La fórmula original se aplica directamente solo a la regresión de Mínimos Cuadrados Ordinarios (OLS).
- Para conjuntos de datos grandes, se vuelve computacionalmente costosa porque requiere un ajuste repetido del modelo.
Pero la lógica subyacente es mucho más amplia. Siguiendo la idea de Cook, uno puede extender este concepto fundamental a cualquier algoritmo de Machine Learning.
Adaptación Agnostic al Algoritmo de Cook's D
La idea central de esta adaptación es:
Si eliminamos un solo punto de datos del conjunto de entrenamiento y volvemos a entrenar el modelo, ¿cuánto cambian las predicciones para todos los puntos de datos en comparación con cuando se incluyó ese punto?
Esta adaptación busca llevar el principio central de Cook a cualquier modelo de Machine Learning, con un flujo de trabajo como este:
Entrene el modelo elegido (por ejemplo, LightGBM, Random Forest, Red Neuronal, Regresión Lineal, etc.) en el conjunto de datos completo y registre las predicciones.
Para cada punto de datos en el conjunto de datos:
- LOO (Leave-One-Out): Elimine el punto de datos para crear un nuevo conjunto de datos.
- Reentrene el modelo en este conjunto de datos reducido.
- Predecir los resultados para todas las observaciones en el conjunto de datos original.
- Mida la divergencia entre los dos conjuntos de predicciones. Un análogo directo a la Distancia de Cook es la diferencia cuadrática media en las predicciones.
Abordando el Desafío Computacional
Otra limitación de esta poderosa métrica es su costo computacional, ya que requiere N reentrenamientos completos del modelo. Para conjuntos de datos grandes, esto puede ser prohibitivamente caro.
Para que el método sea práctico, se puede hacer un compromiso estratégico: en lugar de procesar cada observación individual, se puede enfocar en un subconjunto de puntos de datos. Estos puntos se pueden seleccionar en función de sus altos residuos absolutos cuando son predichos por el modelo completo inicial. Esto enfoca efectivamente el paso computacionalmente intensivo en los candidatos influyentes más probables.
Consejo Profesional: Agregue un parámetro
max_loo_points(integer, optional)
a su implementación. Si se especifica, el cálculo LOO se realiza solo para estos muchos puntos de datos. Esto proporciona un equilibrio entre la minuciosidad y la eficiencia computacional.
Detección Inteligente de Puntos Influyentes
Una vez que se han calculado las puntuaciones de influencia, identifiquemos los puntos influyentes específicos que justifican una mayor investigación y gestión. La estrategia de detección debe adaptarse en función de si estamos trabajando con el conjunto de datos completo o con un subconjunto (cuando se establece max_loo_points
):
Consejo Profesional: Agregue parámetros
influence_outlier_method
yinfluence_outlier_threshold
a su implementación para que sea fácil especificar el enfoque de detección más apropiado para cada caso de uso.
Análisis de Conjunto de Datos Completo:
Al analizar el conjunto de datos completo, las puntuaciones de influencia representan una imagen completa del impacto de cada punto en los patrones aprendidos del modelo. Esto nos permite aprovechar una amplia variedad de métodos de detección basados en la distribución:
Método de Percentil (
influence_outlier_method=[percentile]
):- Selecciona puntos por encima de un umbral de percentil.
- Ejemplo:
threshold=95
identifica los puntos en el 5% superior de las puntuaciones de influencia. - Bueno para: Mantener una proporción consistente de puntos influyentes.
Método de Puntuación Z (
influence_outlier_method=[zscore]
):- Selecciona puntos más allá de N desviaciones estándar de la media.
- Ejemplo:
threshold=3
marca los puntos a más de 3 desviaciones estándar de distancia. - Bueno para: Distribuciones normales o aproximadamente normales.
Método Top K (
influence_outlier_method=[top_k]
):- Selecciona los K puntos con las puntuaciones de influencia más altas.
- Ejemplo:
threshold=50
selecciona los 50 puntos más influyentes. - Bueno para: Cuando necesita un número específico de puntos para investigar.
Método IQR (
influence_outlier_method=[iqr]
):- Selecciona puntos por encima del umbral Q3 + k * IQR.
- Ejemplo:
threshold=1.5
utiliza la definición estándar de valor atípico de diagrama de caja. - Bueno para: Robusto a los valores atípicos, funciona bien con distribuciones sesgadas.
Método Múltiple Medio (
influence_outlier_method=[mean_multiple]
):- Selecciona puntos con puntuaciones de influencia > N veces la puntuación media.
- Ejemplo:
threshold=3
implementa la recomendación de la literatura (por ejemplo, Tranmer, Murphy, Elliot, & Pampaka, 2020). - Bueno para: Seguir prácticas estadísticas establecidas, especialmente cuando se utilizan modelos lineales.
Análisis de Subconjunto:
Para la eficiencia computacional con conjuntos de datos grandes, se puede especificar un valor max_loo_points
para analizar un subconjunto de puntos:
- Filtrado Inicial:
- Utiliza residuos absolutos para identificar n =
max_loo_points
puntos candidatos. - Solo estos candidatos son evaluados por sus puntuaciones de influencia.
- Los puntos restantes (con residuos más bajos) se consideran implícitamente no influyentes.
- Utiliza residuos absolutos para identificar n =
- Métodos Disponibles:
- Percentil: Selecciona el porcentaje superior de puntos (limitado a
max_loo_points
). - Top K: Selecciona los K puntos más influyentes (K ≤
max_loo_points
). - Nota: Otros métodos basados en la distribución (puntuación z, IQR) no son aplicables aquí debido a la naturaleza prefiltrada de las puntuaciones.
- Percentil: Selecciona el porcentaje superior de puntos (limitado a
Este enfoque flexible permite a los usuarios elegir el método de detección más apropiado en función de:
- El tamaño del conjunto de datos y las limitaciones computacionales.
- Características de distribución de las puntuaciones de influencia.
- Requisitos específicos para el número de puntos a investigar.
Visualizaciones de Diagnóstico
Consejo Profesional: La detección de observaciones influyentes debe verse como un punto de partida para la investigación 🔍 en lugar de un criterio de eliminación automática 🗑️
Cada punto marcado merece un examen cuidadoso dentro del contexto del caso de uso específico. Algunos de estos puntos pueden ser representaciones de alto apalancamiento pero válidas de fenómenos inusuales; eliminarlos podría perjudicar el rendimiento. Otros podrían ser errores de datos o ruido; estos son los que querríamos filtrar. Para ayudar en la toma de decisiones sobre los puntos influyentes, el código proporciona visualizaciones de diagnóstico completas para apoyar la investigación:
Distribución de Puntuaciones de Influencia
- Muestra la distribución de las puntuaciones de influencia en todos los puntos
- Resalta el umbral utilizado para marcar puntos influyentes
- Ayuda a evaluar si los puntos influyentes son valores atípicos claros o parte de un espectro continuo
Vista de Distribución del Objetivo
- Muestra la distribución general de la variable objetivo
- Resalta los puntos influyentes con marcadores distintos
- Ayuda a identificar si los puntos influyentes se concentran en rangos de valores específicos
Relaciones Característica-Objetivo
- Crea diagramas de dispersión para cada característica contra el objetivo
- Adapta automáticamente la visualización para características categóricas
- Resalta los puntos influyentes para revelar posibles patrones específicos de características
- Ayuda a comprender si la influencia es impulsada por valores o combinaciones de características específicas
Estas visualizaciones pueden guiar varias decisiones clave:
- Si tratar los puntos influyentes como errores que requieren eliminación.
- Si recopilar observaciones adicionales en regiones similares para que el modelo pueda aprender a manejar puntos influyentes relevantes.
- Si los patrones de influencia sugieren problemas subyacentes de calidad de datos.
- Si los puntos influyentes representan casos límite valiosos que vale la pena preservar.
- Cuál es el mejor método/umbral para filtrar los puntos influyentes para este caso de uso en función de la distribución de la puntuación de influencia.
En general, los diagnósticos visuales, combinados con la experiencia en el dominio, permiten tomar decisiones más informadas sobre cómo manejar las observaciones influyentes en su contexto específico.
Implementación Práctica y Ejemplo
Este enfoque, incluidas todas las funcionalidades mencionadas, se ha implementado como una función de utilidad calculate_cooks_d_like_influence
en el módulo stats_utils
del paquete Python MLarena, con el código fuente disponible en GitHub.
Datos Sintéticos con Disruptores Incorporados
Para ilustrar el uso de esta técnica, se ha creado un conjunto de datos sintéticos de precios de viviendas en función de la edad, el tamaño y el número de habitaciones, y luego se dividió en entrenamiento (n=800) y prueba (n=200). Se introdujeron 50 disruptores en el conjunto de entrenamiento, simulando errores de conversión de moneda que influyen en el precio de la vivienda.
El cálculo de la puntuación de influencia se realiza con la función calculate_cooks_d_like_influence
, que acepta cualquier regresor estilo sklearn que proporcione los métodos fit
y predict
.
Análisis Detallado y Visualizaciones
Las visualizaciones generadas por la función permiten identificar los puntos de datos más influyentes, que en este caso corresponden a los disruptores introducidos artificialmente. Estas visualizaciones ayudan a determinar si los puntos influyentes son errores genuinos, casos raros pero válidos, o indicadores de problemas subyacentes en los datos.
Flexibilidad y Adaptabilidad
La función permite cambiar fácilmente de algoritmo y ajustar los parámetros de detección de puntos influyentes. Por ejemplo, se puede cambiar el regresor a LightGBM y enfocar el análisis en los 200 puntos con los residuos más altos para optimizar el tiempo de cálculo.
Después de una investigación cuidadosa de los puntos influyentes, digamos si decide eliminarlos de su conjunto de entrenamiento y volver a entrenar el modelo. A continuación, se muestra el código para obtener el conjunto de entrenamiento limpio utilizando los normal_indices
convenientemente devueltos de la función calculate_cooks_d_like_influence
de la celda de código anterior.
Impacto en el Rendimiento
Al comparar el rendimiento de diferentes algoritmos entrenados con el conjunto de datos original y el conjunto de datos "limpio" (sin los puntos influyentes), se observa una mejora en la capacidad de generalización de los modelos.
En esencia, esta función debe ser considerada como una herramienta de diagnóstico que destaca áreas para la investigación, no como un mecanismo automático de eliminación de valores atípicos. Su verdadero valor radica en ayudar a comprender mejor los datos para que su modelo pueda aprender y generalizar mejor.
Conclusión
La identificación y gestión de datos influyentes es un paso crítico para construir modelos de Machine Learning robustos y confiables. La adaptación de la Distancia de Cook presentada en este artículo proporciona una herramienta flexible y efectiva para detectar estos puntos de datos disruptivos y tomar decisiones informadas sobre su tratamiento.
Referencias
- Help Your Model Learn the True Signal: https://towardsdatascience.com/help-your-model-learn-the-true-signal/