Cuando elaboramos un proyecto de Data Mining, los datos que usamos están en la memoria de una computadora y el motor analítico es un programa o algoritmo capaz de encontrar esas relaciones. Una vez encontradas las mismas, nos permitirán entender los datos que asumimos fueron generados por algún mecanismo y provenientes de algún sistema o situación de interés, por ejemplo la interacción de los clientes con una empresa.
Si la situación de interés fuera simple, quizás no haría falta recurrir a una computadora, pero si se torna compleja o demasiado grande para manejarla en nuestro cerebro, necesitamos alguna herramienta que nos asista, y qué mejor que una computadora. El único requisito es contar con datos que contengan la información necesaria para nuestro propósito.
En Data Mining los datos generalmente están en forma de tabla, en donde cada fila representa el objeto de interés, por ejemplo, un cliente, un producto o un paciente, y cada columna contiene información acerca de algún atributo del objeto. Por ejemplo en el caso de un paciente podría ser la edad, el peso, la presión arterial, etc. Muchas veces los datos vienen en forma transaccional y se necesita un trabajo de ensamblado previo a fin de obtener la tabla mencionada.
Tanto algoritmos de Data Mining como seres humanos recurrimos a un método común para hacer la cantidad de datos manejable: usamos modelos.
Un buen modelo debería capturar las partes más importantes de la situación y dejar de lado los detalles que no hacen al comportamiento. Si lo logra, entonces parte del trabajo ya está hecho. Sólo resta interpretar este modelo (entender las relaciones explícitas en el modelo) y ponerlo a trabajar, ya sea para predecir o para controlar.
Así como existen distintas clases de modelos, también existen diferentes tipos de herramientas para crearlos. Cuando los datos están preparados, es posible utilizar modelos más simples y aún obtener excelentes resultados.
Tratamiento de nulos
Un método que podría funcionar es acercar los outliers al resto de los valores lo suficiente como para que no traigan problemas en la etapa de modelado, pero no tanto como para que dejen de ser casos extremos. Existe una función que puede mapear una serie de valores en forma lineal en su parte central y logarítmica en sus extremos. Esta es la función logística
En el gráfico de la derecha se puede notar que los outliers, tanto el valor máximo como el mínimo, se acercaron al resto de los datos.
Balanceo de datos
Más frecuentemente de lo que uno quisiera, la variable a predecir tiene una distribución lo suficientemente desequilibrada como para causarle problemas a la gran mayoría de los algoritmos que generan un modelo de predicción. El caso típico es el siguiente:
Una empresa desea llevar a cabo una campaña de marketing uno a uno acerca de un nuevo producto, pero como cuenta con un presupuesto fijo desea enviar el folleto solamente a aquellos clientes que mayor probabilidad de comprar el producto tengan. Para este fin selecciona una muestra de un pequeño porcentaje de clientes y les envía el folleto. De esta manera obtendrá una base de datos con información sobre sus clientes más una variable con una indicación sobre si el cliente compró o no el producto. Esta será la variable a predecir.
Una vez armado el modelo que estime la probabilidad de compra (podría ser un modelo de score), sólo necesitará aplicarlo sobre el resto de los clientes (aquellos que no fueron contactados en la primer campaña usando la muestra de clientes) y luego seleccionar aquellos con mayor probabilidad.
El problema que aparece en este proyecto es que es normal que los clientes pertenecientes a la muestra que responden afirmativamente durante la campaña sean muy pocos (quizás menos de un 5% o 10%). Entonces la variable a predecir contendrá, por ejemplo, 95% de respuestas negativas y 5% de positivas.
Esta clase de distribución tan desequilibrada hace que muchas herramientas generen un modelo cuya respuesta será siempre No Compra para todos los clientes. La razón es que prediciendo la clase más frecuente (No Compra), el modelo obtiene un alto grado de aciertos. En este caso, obtiene ¡un 95% de aciertos!
¿Qué hacer entonces para solucionar este tema? La práctica común es balancear los datos. Esto significa que se toman todos los clientes que respondieron afirmativamente y luego una cantidad igual y al azar de clientes que respondieron negativamente. De esta manera se obtiene una muestra con una distribución de un 50% de Compra y un 50% de No Compra. Cuando la cantidad de clientes con respuesta positiva es demasiado pequeña, se acostumbra a probar con varias distribuciones para ver cuál es la adecuada (por ejemplo, 40%/60% y 30%/70%).
Si el software usado es Powerhouse, no hace falta balancear los datos. Los artículos ¿Es necesario balancear los datos? y Un ejemplo con datos no balanceados dan más detalles y ejemplos sobre este tema.
Transformación de variables numéricas
Existen dos tipos de transformaciones que pueden aplicarse a las variables numéricas: cambiar su distribución y convertir a categórica.
Cambio de la distribución
Hay veces en que la distribución de los valores de una variable está lejos de ser normal, por ejemplo tiene una larga cola como es el caso de una variable que contenga el ingreso o sueldo de las personas. La mayoría de las personas tienen un sueldo que podría ir desde digamos 500$ hasta 5.000$. Pero existen personas cuyos ingresos son mayores, llegando incluso a valores muy altos, como por ejemplo 50.000$. Si se desea un modelo que pueda predecir la probabilidad de que un cliente compre un determinado artículo, esta variable podría ser útil. Pero su poder de discriminación se verá afectado por su distribución. La diferencia entre dos clientes con ingresos de 1.000$ y 2.000$ parece ser lo suficientemente importante como para que afecte la probabilidad de comprar un producto, pero la herramienta de modelado sólo verá una diferencia del 2% (aproximadamente 1000/50.000) en estos dos valores.
Si en vez de usar la variable tal como está, se aplica la función logaritmo a cada valor, la diferencia entre estos dos valores transformados pasa a ser 15%, mas de 7 veces que el caso anterior. Cualquier herramienta que trate con esta variable transformada tendrá más posibilidades de encontrar una relación con el hecho de que un cliente haya comprado o no un artículo. La función logaritmo expande los valores bajos de una variable y comprime los altos, dejando más al descubierto la relación que podría existir con otra variable. En el gráfico de la izquierda se muestra una relación con variables sin transformar y en el de la derecha la misma relación pero con las variables transformadas.
Hay que considerar que no siempre es posible aplicar un logaritmo ya que la función sólo está definida para valores mayores que cero, y tampoco es siempre la mejor transformación, pero siempre es posible encontrar otras funciones similares (la función logística por ejemplo), o modificar la distribución de la variable con métodos numéricos.
Transformación en categóricas
Otro tipo de transformación posible es convertir la variable numérica en categórica. Se debe determinar cuáles serán los puntos de corte para que a cada rango resultante se le asigne una categoría. Existen dos métodos para encontrar los puntos de corte: supervisado y no supervisado.
Uno de los mejores métodos no supervisados es aquel que asigna a cada categoría una misma cantidad de valores. Para lograrlo se ordena la variable de menor a mayor y luego se encuentran los puntos de corte de acuerdo a la cantidad de categorías que se desean. Por ejemplo, si la variable tiene 1000 valores y se desean 10 categorías, el primer punto de corte se lo ubica en la posición 100 (1000/10) de la variable ordenada. El segundo en la 200, el tercero en la 300, y así sucesivamente.
Por ejemplo, la tabla siguiente asigna 8 categorías a una variable que va desde -10 hasta 100
Los métodos supervisados necesitan de la variable dependiente para encontrar sus puntos de corte. Uno de los más conocidos es el llamado LIL por sus siglas en inglés Least Information Loss ("Menor Pérdida de Información") y se basa en Teoría de la Información.
Cada vez que se transforma una variable numérica en categórica, se pierde información, ya que valores que antes eran distinguibles por ser diferentes, ahora serán los mismos (por ejemplo, con la tabla anterior los números 13.5, 17 y 28 pasan a ser exactamente iguales, ya que a los tres se les asigna la categoría Cat4). El método LIL trata de encontrar cuáles son los puntos de corte para que la información perdida sea mínima posible. Powerhouse tiene disponible varios métodos de binning y se usa por default el método LIL.
Transformación de variables categóricas
Los datos que integran cada fila de una tabla tienen una estructura. Los valores de cada variable están más o menos relacionados y es esta relación la que debe preservarse cada vez que se aplica algún tipo de transformación en las variables. Cuando es necesario asignar un valor numérico a variables del tipo categórico, es una práctica común hacerlo en forma arbitraria pero sin advertir que se está corriendo el riesgo de destruir la estructura interna de los datos.
La altura y el peso son ejemplos de variables que mantienen una relación entre si. Supongamos que el peso viene dado en kilogramos como una variable numérica y la altura como una variable categórica tal como se muestra en la siguiente tabla
La relación entre estas dos variables es más simple en el gráfico de la derecha (que podría considerarse lineal) que en el de la izquierda (que es definitivamente no lineal). En este caso, para obtener la tabla de asignaciones numéricas que preservaran la relación simplemente se obtuvo el promedio de pesos para cada categoría de la variable altura y luego se normalizó de 0 a 1. El resultado es el siguiente
Conclusiones
Estos son algunos de los métodos recomendados para transformar datos. Esta es una tarea que puede llevar mucho tiempo, de hecho se estima que podría consumir el 70% del tiempo total de un proyecto de Data Mining, pero las ventajas son enormes.
Una vez que los datos han sido preparados las relaciones que contienen quedan mejor expuestas, facilitando de esta manera el trabajo que tiene que hacer la herramienta que vaya a crear el modelo.
Esto a su vez tiene una consecuencia muy importante: como las relaciones quedaron al descubierto, el riesgo de sobre-entrenamiento se minimiza. Además, herramientas tan simples como una regresión lineal podrían generar un modelo excelente.
Powerhouse utiliza parte de esta metodología para preparar los datos automáticamente y evitar tener que hacerlo manualmente.
7 comentarios:
Impecable
Muchas gracias por tu comentario Jeremías.
Saludos,
Marcelo
El tema esta igual en MONOGRAFIAS!
quien copio a quien?
El artículo es el mismo, escrito por mi y publicado en Monografías y en mi Blog.
Saludos,
Marcelo
Muy buen artículo, realmente ilustrativo y simple de comprender
Muy buen artículo, realmente ilustrativo y simple de comprender
Muchas gracias por tu comentario Lolo.
Saludos,
Marcelo
Publicar un comentario