En este blog se exploran las posibilidades de analizar datos y crear modelos basados en la Teoría de la Información usando Powerhouse

jueves, 1 de noviembre de 2007

Un ejemplo con datos No Balanceados

En un artículo anterior comenté que en Powerhouse no es necesario balancear los datos. De hecho podría llegar a ser contraproducente. En este artículo mostraré un ejemplo que con muchas herramientas de Data Mining necesitaría un ajuste en los datos a fin de balancear la variable a predecir.

Los datos son acerca de una campaña de marketing para la venta de tarjetas de crédito. Existen >11.000 casos, 39 variables independientes y una variable dependiente que es un flag indicando si el cliente contactado con la oferta de la tarjeta, la aceptó o no.

La particularidad de estos datos es que la variable dependiente tiene muy pocas respuestas positivas, alrededor de 1.5%, como puede verse en el gráfico o en la tabla. Esta clase de distribución en datos de campañas de marketing no es inusual y complica la creación de un modelo de predicción en más de una forma.


Si la herramienta de modelado necesita trabajar con datos balanceados (por ejemplo una red neuronal) hay que seleccionar parte de los datos para lograr una distribución más equitativa con la consecuente disminución de la cantidad de datos disponibles para realizar el modelo. Otra alternativa es generar nuevos datos artificiales con una distribución similar a los casos poco representados, aunque este último método no es recomendado.

Powerhouse puede trabajar con los datos tal como están. Al cargar la tabla con los datos, se dejó de lado un 40% de casos para verificar el modelo.

El primer paso es crear una selección de variables

Se seleccionaron 4 variables que llevan la mayor información libre de ruido y con una buena probabilidad de ser una muestra representativa de la población. Estas variables llevan el 75.07% de la información necesaria para predecir la variable independiente.

El siguiente paso es construir un modelo OPFIT ya que es el que normalmente obtiene los mejores resultados. La siguiente ventana muestra el desempeño del modelo

El KS es 40.7 sobre los datos de entrenamiento (trainining set) y 36.6 sobre los de prueba (test set). Considerando que los datos de prueba no se usan en ningún momento para crear el modelo, este sería el valor aproximado de KS que debería esperarse cuando el modelo se ponga en producción.

El valor del R2 no parece ser muy bueno, pero esto es debido a que este parámetro de medición no es adecuado para este tipo de problemas.

La curva de Lift muestra que sobre los datos de prueba, con un 20% de los clientes se pueden conseguir alrededor de un 50% de clientes que aceptaron la oferta. Para tener datos más precisos se puede consultar la tabla de Lift que muestra que efectivamente el valor es 50% o un lift de 2.5

Ya que la variable a predecir está tan desequilabrada (1.45%/98.55% en este caso), vamos a probar de cargar un 75% de los datos para realizar el modelo (Training set) y el 25% restante para prueba y compararemos las variables seleccionadas y el rendimiento de los modelos.

La ganancia de información es algo menor pero mejora la confianza de tener una muestra representativa, lo que podría mejorar el desempeño del modelo en los datos de prueba (y por consiguiente con datos nuevos). Las variables seleccionadas son las mismas. El modelo tiene un KS de 41.5 y 38 sobre los datos de entrenamiento y prueba. Se puede notar que la brecha entre ambas tablas disminuyó (antes era un poco más de 4 puntos y ahora es de 3.5). La tabla de Lift muestra un desempeño algo superior al anterior

Con Powerhouse existe la posibilidad de realizar un nuevo modelo usando todos los datos disponibles ya que casi no existe riesgo de sobre-entrenamiento, sobre todo una vez que se comprobó que el modelo funciona bien con datos de prueba.

Es más, en este ejercicio pudimos ver que aumentando la cantidad de datos para el entrenamiento, el desempeño del modelo sobre los datos de pruebas fue más cercano al desempeño sobre los datos de entrenamiento.

No hay comentarios: