Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

La importancia de preparar los datos en un proyecto de Data Mining (página )



Partes: 1, 2

 

Tratamiento de
nulos

El tratamiento de los nulos es un tema lo
suficientemente amplio como para requerir de un artículo
aparte, pero, si es posible, la mejor decisión es eliminar
todas las filas que contengan nulos. Cualquier estrategia de
reemplazo de nulos que se siga, indefectiblemente
terminará introduciendo un sesgo en los datos. Si dejar
de lado las filas con nulos finaliza con un conjunto de datos
demasiado pequeño para modelar, entonces habrá que
usar algún método
para reemplazarlos (ver bibliografía para obtener
referencias).

Qué hacer con los outliers

Un outlier es un valor muy
alejado de la mayoría de los valores
que toma una variable. ¿Es un error? Quizás si,
quizás no. Si es posible asegurar que se trata de un
error, podría corregirse o en el último de los
casos ser tratado como un nulo. Caso contrario habrá que
hacer algo con estos valores para
que no creen problemas con
la herramienta de modelado.

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 donde Vi es el valor a transformar y Vn es el
transformado. Los dos gráficos siguientes muestran el efecto de
usar la función logística sobre una serie de valores que
contienen dos outliers. Los valores originales están en el
gráfico de la izquierda y los transformados a la
derecha.

 

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%).

Afortunadamente existen nuevos algoritmos que son
inmunes a este problema de desequilibrio en la variable a
predecir, como ser aquellos basados en la Teoría
de la Información.

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

Estos rangos agrupan la misma cantidad de valores en
cada categoría.

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.

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

Una manera de asignar valores numéricos a la
variable altura sin tratar de preservar la relación entre
estas dos variables es por orden alfabético

El gráfico de la izquierda muestra cómo
queda la relación entre estas dos variables usando la
asignación numérica arbitraria dada en la tabla de
arriba y el gráfico de la derecha muestra la misma
relación pero usando un método de asignación
numérica que no destruya la estructura.

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

Esta tabla refleja el orden natural de las
categorías (Bajo, Mediano, Alto). En este caso es posible
notarlo porque el ejemplo y la relación es muy simple,
pero en otros casos podría no ser evidente.

Conclusiones

Se analizaron 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.

En la bibliografía se encuentra el libro de
Dorian Pyle que trata sobre estos temas de un modo mucho
más detallado.

Bibliografía

Pyle, Dorian, Data Preparation for Data Mining, Morgan
Kaufmann, 1999

Artículos del Blog
www.powerhousedm.blogspot.com

Powerhouse: Data Mining basado en la Teoría de la
Información. Segundas Jornadas Argentinas de Data Mining.
UBA – Octubre 2007.

 

Autor

Marcelo R. Ferreyra

mferreyra[arroba]pti.com

Consultor en Data Mining y Business
Intelligence.

Lugar y fecha del artículo

Trenque Lauquen, Argentina, Noviembre de
2007

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter