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

miércoles, 10 de octubre de 2007

La importancia de preparar los datos

Preparar los datos antes de construir un modelo con cualquier herramienta es esencial para obtener los mejores resultados. Veamos por qué.

Variables numéricas

Supongamos que estamos trabajando con una variable cuya distribución tiene una larga cola. Un ejemplo podría ser el sueldo de una persona, tal como se puede ver en el siguiente gráfico



Esta variable tiene una mediana de 1.200$ y una media de aproximadamente 1.700$, pero contiene sueldos mucho mayores, llegando a un máximo de 130.000$.

Cuando se usa esta variable sin ningún tratamiento previo, salvo expresarla en una nueva escala, como ser 0 a 1 ó –1 a +1, como lo requeriría una red neuronal, se estaría desaprovechando gran parte de la información que pudiera contener. ¿Por qué? La razón es simple, los algoritmos que trabajan con los diferentes valores de la variable tratarán de encontrar intervalos en que la variable puede discriminar valores de la variable dependiente. Pero estos intervalos siempre son relativos al rango total de la variable.

Por ejemplo, supongamos que estamos modelando un score para predecir la probabilidad de que un cliente acepte un determinado producto y creemos que el sueldo podría ser una buena variable predictora. Intuitivamente podríamos asumir que una persona con un sueldo de 1.000$ se debería comportar de manera diferente que otra cuyo sueldo sea 5.000$. Después de todo hay una diferencia de 4.000$ en los sueldos. Pero la herramienta que usemos para modelar, por ejemplo una red neuronal, verá una diferencia muy pequeña porque ambos valores solo difieren apenas en un 2%, ya que 1.000$ representa el 0.77% respecto del rango total de la variable (0 a 130.000$) y 4.000$ representa el 3.08%.

¿Cómo solucionamos esto? Existen varios métodos. Uno de ellos es aplicar la función matemática logaritmo a esta variable. El logaritmo tiene la propiedad de comprimir los valores altos y expandir los bajos. Por ejemplo, si aplicamos el logaritmo en base 10 a nuestro ejemplo y luego calculamos los valores relativos, nos queda:

Valor Original

Log

Log Relativo

1,000 $

3.00

59%

4,000 $

3.60

70%

Ahora la diferencia entre los dos sueldos es de un 11%, cinco veces más que en el caso anterior. De todas maneras hay que tener en cuenta que los logaritmos no son ni la solución ideal ni una solución universal. Por ejemplo, no es posible aplicar el logaritmo si existen valores menores o iguales a cero. Afortunadamente existen métodos numéricos capaces de modificar la forma de la distribución para que la variable incremente su poder discriminatorio, pero la explicación de los mismos quedará para un siguiente artículo.

Variables categóricas

Otro problema comúnmente encontrado en proyectos de Data Mining es la asignación de valores numéricos a variables categóricas. La práctica normal es asignar los valores numéricos al azar, sin seguir ningún método particular.

El problema con este método es que asignar valores numéricos arbitrarios a cada categoría podría destruir la estructura interna de los datos. Para aclarar esto supongamos que tomamos una fila de una tabla de datos. En general, los valores que toman las variables mantienen una cierta relación, por ejemplo, la altura y el peso de una persona. Esta relación entre variables es la que debemos mantener cuando le asignamos valores numéricos a las categorías. Si no lo hacemos, podríamos estar modificando las relaciones internas de modo que la herramienta de modelado tenga que lidiar con relaciones más complejas.

Como ejemplo práctico de preparar los datos antes de modelarlos veremos un caso real obtenido de Internet. En el sitio web de UCI Machine Learning Repository existe una tabla de datos llamada Adult. Con Powerhouse se seleccionaron 5 variables para predecir si la persona tiene ingresos mayores a 50 mil dólares anuales o no. Luego se prepararon dos modelos de regresión lineal, uno con los datos sin preparar (en donde las variables categóricas fueron numeradas en forma arbitraria) y otro con los datos preparados con Powerhouse.

Los resultados se resumen en la siguiente tabla


Datos sin Preparar

Datos Preparados

KS

44

60

R2

0.19

0.32


Con datos preparados el estadístico KS (Kolmogorov-Smirnoff) mejora casi un 50% y el coeficiente de determinación mejora más de un 50%.

Un libro que desarrolla de manera excelente el tema de preparación de datos es Data Preparation for Data Mining de Dorian Pyle.


No hay comentarios: