2 preprocesado

10
Universidad Católica Boliviana – La Paz Maestría en Gestión de Sistemas de Información Minería de Datos Dra. Alicia Pérez Abelleira Preprocesamiento de los datos en RapidMiner Este ejemplo 1 ilustra algunas operaciones básicas de preprocesamiento de los datos que pueden realizarse usando RapidMiner. Se usará un conjunto de datos de ejemplo sobre un banco llamado banco-datos.csv que está en formato csv (separado por comas). El departamento de marketing de una empresa financiera mantiene registros de los clientes con incluyendo información demográfica y número y tipo de cuentas. Cuando se lanza un nuevo producto, por ejemplo un plan de inversión, se envía una carta con publicidad del producto a los clientes existentes, y se lleva un registro sobre si ese cliente respondió y compró el producto. Basándose en este almacén de experiencia previa, los gerentes deciden utilizar técnicas de minería de datos para construir modelos de los perfiles de clientes. Los datos están en el archivo banco-datos.csv. Cada registro es una descripción de un cliente y el campo “plan” indica si el cliente compró o no el plan después del último envío masivo de cartas. Los datos tienen los siguientes campos: id Un identificador único edad Edad del cliente en años (numérico) sexo VARON / MUJER región centro_ciudad/rural/alrededores/pueblo ingresos Ingresos del cliente (numérico) casado ¿casado/a? (SI/NO) hijos Número de hijos (numérico) auto ¿posee el cliente un auto? (SI/NO) libreta_ah orro ¿posee el cliente una libreta de ahorros? (SI/NO) cuenta ¿posee el cliente una cuenta? (SI/NO) 1 Esta guía ha sido adaptada de http://maya.cs.depaul.edu/~Classes/Ect584/Weka.

Transcript of 2 preprocesado

Page 1: 2 preprocesado

Universidad Católica Boliviana – La PazMaestría en Gestión de Sistemas de InformaciónMinería de DatosDra. Alicia Pérez Abelleira

Preprocesamiento de los datos en RapidMiner

Este ejemplo1 ilustra algunas operaciones básicas de preprocesamiento de los datos que pueden realizarse usando RapidMiner. Se usará un conjunto de datos de ejemplo sobre un banco llamado banco-datos.csv que está en formato csv (separado por comas).

El departamento de marketing de una empresa financiera mantiene registros de los clientes con incluyendo información demográfica y número y tipo de cuentas. Cuando se lanza un nuevo producto, por ejemplo un plan de inversión, se envía una carta con publicidad del producto a los clientes existentes, y se lleva un registro sobre si ese cliente respondió y compró el producto. Basándose en este almacén de experiencia previa, los gerentes deciden utilizar técnicas de minería de datos para construir modelos de los perfiles de clientes.

Los datos están en el archivo banco-datos.csv. Cada registro es una descripción de un cliente y el campo “plan” indica si el cliente compró o no el plan después del último envío masivo de cartas.

Los datos tienen los siguientes campos:

id Un identificador único

edad Edad del cliente en años (numérico)

sexo VARON / MUJER

región centro_ciudad/rural/alrededores/pueblo

ingresos Ingresos del cliente (numérico)

casado ¿casado/a? (SI/NO)

hijos Número de hijos (numérico)

auto ¿posee el cliente un auto? (SI/NO)

libreta_ahorro ¿posee el cliente una libreta de ahorros? (SI/NO)

cuenta ¿posee el cliente una cuenta? (SI/NO)

hipoteca ¿tiene el cliente una hipoteca? (SI/NO)

plan ¿compró un plan de inversión después del ultimo envío de publicidad (SI/NO)

Carga de los datos

RapidMiner puede leer archivos en una variedad de formatos, como por ejemplo CSV. Muchas aplicaciones de bases de datos u hojas de cálculo pueden generar archivos de texto con dicho formato. Como puede verse en el archivo de ejemplo, la primera fila contiene los nombres de los atributos (separados por comas) y va seguida por filas para cada instancia de datos con los valores de atributos en ese mismo orden (también separados por comas). Una vez cargado en RapidMiner, el conjunto de datos pueden guardarse en otros formatos.

En este ejemplo cargaremos el conjunto de datos en RapidMiner, realizaremos una serie de operaciones de limpieza y transformación de datos utilizando los operadores para filtrar atributos y 1 Esta guía ha sido adaptada de http://maya.cs.depaul.edu/~Classes/Ect584/Weka.

Page 2: 2 preprocesado

de discretización de RapidMiner y más adelante realizaremos minería de reglas de asociación en el conjunto de datos resultante.

Primero lea el archivo banco-datos.csv. Para ello, añada el operador “Read CSV” al proceso. Puede encontrar este operador en el panel de operadores de la izquierda de dos maneras. (a) Navegando en la estructura de operadores (Import->Data->Read CSV) o (b) escribiendo CSV en la ventana de búsqueda de operadores. Arrastre el operador a la ventana Main Process.

A la derecha, en el panel de parámetros del operador, los parámetros necesarios. Puede usar el asistente (Import Configuration Wizard) para importar el archivo “banco-datos.csv”. Siga los pasos, asegurándose de que en el paso 2 cada atributo es ubicado en una columna. En el paso 3 puede pedir a RapidMiner que detecte automáticamente los tipos de los atributos (botón “guess value types”). Asegúrese de que los tipos propuestos son adecuados. Señale que el atributo Plan es el atributo de clase marcándolo como “label”.

Termine el asistente. Ahora, si mueve el cursor sobre la salida del operador puede ver un resumen de los datos. Hágalo.

Al cargar los datos, RapidMiner calcula estadísticas básicas sobre cada atributo. Para verlas, asegúrese de que la salida del operador Read CSV está conectada a la salida del proceso. Después ejecute el mismo. En la perspectiva de resultados puede ver el resumen de los mismos en la vista “Meta Data View” del conjunto de ejemplos (pestaña “Example Set”).

2

Page 3: 2 preprocesado

Para atributos nominales, se muestra la frecuencia para cada valor del atributo, mientras que para los atributos numéricos podemos ver min, max (columna Range), media y desviación estándar (columna Statistics).

En la vista “Data view” puede ver todos los ejemplos. La vista “Plot View” le permite explorarlos gráficamente. La primera figura de las que siguen muestra la distribución de los ingresos. La segunda es una tabulación cruzada y muestra la distribución de los ingresos con su valor de clase Plan. La tercera hace lo mismo para el atributo “casado”.

3

Page 4: 2 preprocesado

Selección o filtrado de atributos

En nuestro archivo de ejemplo cada registro se identifica de forma única por un número de identificación de cliente (el atributo ID). Tenemos que eliminar este atributo antes de hacer la minería de datos. Una forma sencilla de hacerlo es usando los filtros de atributo de RapidMiner. En el panel “Operators” seleccione “Data transformation”, “Attribute set reduction” y “Selection”. Arrastre el operador “Select Attributes” al proceso, conéctelo con la salida del otro operador, y asigne valores a sus parámetros, como en la figura, seleccionando el atributo ID pero con la operación inversa (borrarlo en lugar de seleccionarlo).2

2 También podríamos haber marcado el atributo ID como especial, con la etiqueta RapidMiner “id” en lugar de “regular” al importar los datos, con lo cual no será utilizado por los algoritmos de aprendizaje. Lo estamos haciendo así para practicar el uso de los operadores de transformación y limpieza de datos.

4

Page 5: 2 preprocesado

El resultado de ejecutar el proceso puede verse en esta figura. (El atributo ID ya no está.)

Existen al menos otras dos maneras de eliminar este atributo:

operador Remove Attribute: elimina los atributos en cierto rango operador Remove Useless Attributes: elimina los atributos inútiles. Estos son:

o atributos nominales cuyo valor más frecuente aparece en más de un x% de los ejemplos (x es su parámetro nominal_useless_above)

o atributos nominales cuyo valor más frecuente aparece en menos de un y% de los ejemplos (y es su parámetro nominal_useless_below)

o atributos numéricos cuya desviación estándar es menor que un umbral to atributos que parecen ser un ID de instancia porque aparecen una sola vez en todo el

conjunto de datos (parámetro “nominal remove id like”)

Note que en todos estos casos los atributos inútiles lo son por su poca capacidad de discriminar entre los ejemplos.

Pruebe estas dos maneras de eliminar el atributo ID y compruebe que obtiene el mismo resultado. Puede hacerlo si lo desea con un proceso como éste.

Es posible ahora aplicar otros filtros al nuevo conjunto de datos. Pero antes vamos a ir guardando nuestros resultados intermedios de forma independiente en archivos. Para guardarlos como archivo ARFF (el formato especial para minería de datos que utiliza la herramienta Weka) añada el operador Write ARFF y llame al archivo “banco-datos-R1.arff”. Ejecute el proceso y asegúrese de que el archivo ha sido correctamente guardado.

5

Page 6: 2 preprocesado

La Figura muestra el comienzo del nuevo archivo ARFF (en WordPad).

Vea que en el nuevo conjunto de datos, se han eliminado el atributo “id”y todos los valores correspondientes en los datos. Note también que en este formato se almacenan los tipos y valores asociados a los atributos, en la sección Attributes del archivo ARFF.

Discretización

Algunas técnicas, como la minería de reglas de asociación, sólo puede realizarse sobre datos categóricos. Por ello hay que discretizar los atributos numéricos continuos, tres en nuestro conjunto de datos: “edad”, “ingresos” e “hijos”.

En el caso del atributo “hijos” sólo hay cuatro valores posibles: 0, 1, 2 y 3, y hemos optado por mantener todos estos valores en los datos. El atributo es ahora nominal. Esta transformación se puede realizar mediante el operador Numerical to Polynominal, como en la figura. Guarde el conjunto de datos resultante en un archivo aparte “banco-datos2.arff” y verifique la conversión del tipo del atributo “hijos” (nominal con cuatro valores posibles).

Dejemos que RapidMiner realice ahora la discretización de los atributos “edad” e “ingresos”. En este ejemplo, podemos dividir cada uno de ellos en 3 cubetas o bins (intervalos). Los operadores de discretización pueden dividir los rangos a ciegas, o utilizando diversas técnicas estadísticas para determinar automáticamente la mejor forma de particionar los datos. En este caso, vamos a realizar un sencillo binning.

6

Page 7: 2 preprocesado

Agregue al proceso el operador Discretize by Binning. Indique qué atributos deben ser discretizados, en este caso el atributo “edad”. Coloque también 3 como el número de bins (ten en cuenta que se puede discretizar más de un atributo al mismo tiempo usando una lista de índices de atributos). Seleccione “interval” para la manera de dar nombre a los nuevos valores. Estas opciones se muestran en la figura. Finalmente indique que se guarden los resultados en un nuevo archivo "banco-datos3.arff".

Revise el atributo “edad” en el archivo ARFF para ver qué intervalos han sido definidos. Debe tener tres valores o cubetas.

Puede ver esa misma información en la perspectiva de resultados de RapidMiner, con la vista “Mata data View”.

Ahora visualice los datos con la vista “Plot View”, mostrando la distribución de valores de clase Plan para cada uno de los nuevos valores de Edad”.

7

Page 8: 2 preprocesado

A continuación, aplicamos el mismo proceso para discretizar el atributo “ingresos” en 3 bins. Hágalo modificando los parámetros del operador Discretize. Indique que el parámetro “attribute filter type” sea “subset” y seleccione los dos atributos ahora: edad e ingresos. Tras ejecutar el proceso asegúrese de que los dos atributos han sido discretizados correctamente y guarde los datos en un nuevo archivo "banco-datos-final.arff".

ENTREGAR: archivo banco-datos-final.arff

8