Tutorial: Uso básico de RapidMiner Parte II: Predicción de variables

Anuncio
Tutorial: Uso básico de RapidMiner
Parte II: Predicción de variables categóricas
En esta segunda parte del tutorial, se presentará un ejemplo que enseñe cómo predecir
una variable categórica. Es altamente recomendable que se haya leído la Parte I antes de
continuar, ya que las operaciones comunes no serán explicadas nuevamente.
Contexto
Siguiendo con la idea de construir modelos predictivos que permitan determinar la calidad
de un colegio, puede ser interesante usar la información disponible acerca de los
resultados de la prueba SIMCE.
Para el ejemplo presentado en este tutorial, se usarán los datos de los resultados de la
prueba SIMCE del 2009, que pueden descargarse gratuitamente de:
http://www.simce.cl/index.php?id=262
Análisis Propuesto
Los archivos descargables desde la dirección previamente citada son, en realidad, un
paquete de planillas con resultados de la prueba en distintos niveles de agregación. En
particular, en este ejemplo se usará el archivo ESTAB_4to.xls que contiene los resultados
de la prueba aplicada a niños de cuarto básico, agregada al nivel de establecimiento
educacional.
El análisis que se propone para este ejemplo, es llegar a construir un modelo que permita
predecir cuál será el nivel de aprendizaje logrado en matemáticas por los alumnos de un
establecimiento, dadas algunas de sus características, tales como ubicación geográfica,
dependencia administrativa y nivel de ruralidad.
A partir de la planilla original, se construyó una modificación de la misma, que incluye
transformaciones de variables categóricas a nominales, esto con el fin de poder utilizar
una mayor variedad de modelos.
El archivo que se utilizará se adjunta y se llama ESTAB_4TO_mod.xls
Trabajo con RapidMiner
En esta ocasión se asume que se tiene RapidMiner abierto y que no es la primera vez que
se usa (si lo es, ver la Parte I de este tutorial). Luego, para construir el modelo se deben
seguir los siguientes pasos:
1. Elegir la opción New para crear un nuevo archivo.
2. Darle un nombre (ejemplo Tutorial2) y ubicarlo en el repositorio local.
Lo primero que se debe hacer es importar los datos desde la planilla al proyecto actual. En
el tutorial anterior, esto se realizó mediante el operador Read Excel, sin embargo,
también se mencionó que existía otra forma de hacerlo: mediante la inclusión de los datos
en el repositorio local, que es lo que se explicará a continuación.
3. En el panel de la izquierda ir a la pestaña Repositories y seleccionar la opción
Import Excel Sheet (ver Screenshot 1: Selección de opción para importar datos).
Screenshot 1: Selección de opción para importar datos
Se abrirá un asistente idéntico al que aparece al usar el operador Read Excel, por lo que
los pasos a seguir ya deberían ser conocidos:
4. Explorar los archivos del computador y seleccionar el archivo ESTAB_4TO_mod.xls,
pulsar Next.
5. Cerciorarse de que todas las celdas estén seleccionadas y pulsar en Next.
6. Seleccionar la anotación Name para la primera fila de la planilla y pulsar en Next.
7. Dejar seleccionadas las casillas de las siguientes variables, con sus respectivos
tipos, notados entre paréntesis: REGION (polynominal), RBD (integer), DDCIA
(polynominal), RURALIDAD (binominal), GRUPO (polynominal), ALUM_MAT
(integer), PROM_MAT (integer).
8. Asignarle el rol id a RBD y label a PROM_MAT, pulsar en Next.
9. Seleccionar el repositorio local y darle un nombre (ejemplo DatosSimce), pulsar en
Finish.
Con esto realizado, se habrá importado los datos elegidos al repositorio de trabajo. Para
asegurarse de que todo esté bien, verificar que aparezca el nombre recién introducido en
la lista de repositorios del panel izquierdo. Lo que resta a continuación es simplemente
construir el modelo, siguiendo los siguientes pasos.
10. Arrastrar el set de datos recién creado desde el repositorio hasta el área de diseño
del proceso, esto producirá que aparezca el operador Retrieve (ver Screenshot 2).
Screenshot 2: Comienzo del diseño
Luego, lo que se necesita hacer es categorizar la variable objetivo (PROM_MAT), puesto
que inicialmente es un valor numérico y se quiere traducir en las categorías Bueno y Malo.
Si bien esto podría haberse realizado en Excel, acá se mostrará una de las técnicas de
preprocesamiento de datos que provee RapidMiner: la transformación Numerical to
Binominal.
11. En el panel Operators, explorar, seleccionar el operador Data Transformation>Type Conversion->Numerical to Binominal y arrastrarlo al área de trabajo.
12. Conectar la salida out de Retrieve con la entrada exa del operador recién
agregado.
13. En el panel Parameters del operador Numerical to Binominal seleccionar la opción
single en el campo attribute filter type, marcar la casilla include special attributes,
seleccionar la opción PROM_MAT para el campo attribute y dar el valor 250 al
campo max (ver Screenshot 3).
Opcionalmente se puede conectar la salida exa de Numerical to Binominal con la salida
res del proceso y ejecutarlo para ver el efecto que produce este operador. Al hacerlo, se
puede notar que la variable PROM_MAT ahora es de tipo binominal y sus valores son false
para los puntajes menores o iguales a 250 y true para el resto.
Screenshot 3: Operador Numerical to Binominal
A continuación se procederá a construir un proceso con el operador Validation que use un
árbol de decisión (Decision Tree) para entrenar el modelo y evalúe su rendimiento de la
misma forma que en el tutorial anterior.
14. Agregar el operador Split Validation y conectar su entrada tra con la salida exa de
Numerical to Binominal.
15. Ir al interior de Validation y agregar los operadores Apply Model y Performance
en la zona Testing, conectándolos adecuadamente, al igual que se hizo en el
tutorial anterior.
16. Explorar la lista de operadores en Modeling->Classification and Regression->Tree
Induction->Decision Tree, seleccionarlo y arrastrarlo al área de Training.
17. Conectar su entrada tra con la entrada tra del área y su salida mod, con su
correspondiente de esa zona (ver Screenshot 4).
18. Volver al área de diseño principal (subiendo un nivel)
19. Conectar las salidas mod y ave a salidas res del proceso completo (ver Screenshot
5).
Con esto, el diseño del proceso ha quedado concluido y solo resta ejecutarlo para obtener
los resultados. Para hacerlo, presionar el botón Play de la barra horizontal superior y
cambiar a la perspectiva de resultados.
Screenshot 4: Composición del operador Validation
Screenshot 5: Diseño completo del proceso
Al ejecutar el proceso y observar los resultados del Performance Vector, en el criterio
accuracy, se obtiene una tabla denominada matriz de confusión (ver Screenshot 6) y que
se lee de la siguiente forma: “Del total de establecimientos malos (valor false), 697 fueron
clasificados como malos y 257 como buenos, lo que corresponde a una precisión del
73.06%. Análogamente, del total de establecimientos buenos (valor true), 187 fueron
clasificados como malos y 523 como buenos, lo que corresponde a una precisión del
73.66%”.
Screenshot 6: Resultados del rendimiento del modelo
Por otro lado, está el resultado correspondiente al modelo en sí, que en este caso es un
árbol de decisión. RapidMiner muestra este tipo de modelos de forma gráfica y se puede
ver en la pestaña Tree (Decision Tree) (ver Screenshot 7). Para el caso de este ejemplo, se
observa que la mejor manera de discriminar entre los establecimientos para poder
predecir su rendimiento en el SIMCE de matemáticas es mediante su pertenencia a un
grupo socioeconómico, notando que, por ejemplo, si un establecimiento pertenece al
grupo E (el más alto), su rendimiento en el SIMCE será bueno con una probabilidad
cercana a 1, mientras que si un establecimiento pertenece al grupo A (el más bajo), su
rendimiento será malo con una alta probabilidad.
En tanto, se observa que para establecimientos del grupo C, la probabilidad de un
rendimiento bueno o malo es muy similar en ambos casos.
Cabe señalar que el hecho de que este modelo solo use una variable para llevar a cabo la
discriminación es una mera coincidencia del ejemplo y se explica debido a que el utilizar
las otras variables no otorga una mayor precisión en la clasificación.
Con esto, se da por concluida la segunda parte de este tutorial, ya que se ha mostrado
cómo construir un proceso que permita predecir variables categóricas y, además, se
explicó como importar datos al repositorio, para poder usarlos con cualquier proyecto.
Screenshot 7: Resultado del modelo
Conclusiones e ideas propuestas
A partir de lo realizado en este ejemplo, sería interesante realizar el mismo análisis con
datos de otros años, para ver si alguna de las otras variables cobra relevancia y permiten
una mejor clasificación del rendimiento.
Por otro lado, se puede intentar realizar este mismo proceso, pero identificando 3
categorías distintas (Malo, Intermedio, Bueno) y ver cuál es el rendimiento del modelo.
Asimismo se puede probar con otros modelos que permitan predecir variables
categóricas, recordando que un operador puede ser fácilmente reemplazado mediante el
menú contextual que aparece al ser seleccionado con el botón derecho del mouse.
Por último, cabe destacar que tras dos ejemplos ya se ha podido establecer un cierto
patrón en el diseño de procesos (leer datos, pasarlos por un proceso de validación, que
entrena un modelo y luego lo evalúa y obtener resultados). Este esquema es el básico
para cualquier proceso en RapidMiner y se puede utilizar como plantilla para otros
ejemplos y actividades.
Descargar