Este documento describe los pasos para preprocesar un conjunto de datos bancarios en RapidMiner, incluyendo cargar los datos, seleccionar atributos, y discretizar atributos continuos. Primero, se cargan los datos desde un archivo CSV y se elimina el atributo de identificación. Luego, los atributos numéricos "edad" e "ingresos" se discretizan en 3 intervalos cada uno usando binning. Finalmente, el conjunto de datos preprocesado se guarda en un archivo ARFF.
1. 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 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.
1 Esta guía ha sido adaptada de http://maya.cs.depaul.edu/~Classes/Ect584/Weka.
2. 2
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
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”).
3. 3
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”.
4. 4
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.
5. 5
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 t
o 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.
6. 6
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.
7. 7
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”.
8. 8
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