You are on page 1of 11

LABORATORIO N 02

Escuela Profesional: Ingeniera de Sistemas. Ciclo y Turno: VII Maana, Tarde y Noche Docente: Ing. Virgilio Fredy Tito Chura Asignatura: Inteligencia Artificial Semestre Acadmico: 2011 - I Fecha: 25 al 29 de abril del 2011

APRENDIZAJE AUTOMATICO
CLASIFICACION DE DATOS

I. INTRODUCCIN En sta sesin se utiliza el software WEKA para la clasificacin de datos. II. CAPACIDADES

1. Utiliza Weka como software de clasificacin de datos. 2. Clasifica datos utilizando el algoritmo ID3
III. PROCEDIMIENTO

1. 2.

Instale weka. Ejecute weka utilizando el siguiente comando

3. WEKA dispone de 4 interfaces de usuario distintos, que se pueden elegir despus de lanzar la aplicacin completa. Los interfaces son:

Aparece la ventana inicial de weka

Simple CLI (command line interface): interfaz en modo texto.

Explorer: interfaz grfico bsico.

Experimenter: interfaz grfico con posibilidad de comparar el funcionamiento de diversos algoritmos de aprendizaje.

KnowledgeFlow: interfaz grfico que permite interconectar distintos algoritmos de aprendizaje en cascada, creando una red.

4.

PRIMER EJEMPLO DE UTILIZACIN DE WEKA

Como primer ejemplo, se trabajar sobre una base de datos clsica incluida en el propio programa. Se trata de una base de datos en la que se pretende determinar cules son los factores que hacen que una cierta persona practique o no el tenis. Cada instancia de la base de datos se corresponde con un cierto da en el que la persona se plantea si jugar o no al tenis, y recoge los siguientes atributos: Aspecto del cielo: {soleado, cubierto, lluvioso}. Temperatura: medida en grados. Humedad: medida en %. Viento: {si, no}. Juega al tenis: {si, no}. Se dispone de datos recogidos durante 14 das distintos, y el objetivo es determinar cul es la relacin entre las condiciones del tiempo y la decisin de jugar o no al tenis. PASO 1: Lanzar el interfaz Explorer En esta primera prctica se utilizar WEKA desde el interfaz Explorer. Se lanzar este interfaz de acuerdo con lo indicado en la introduccin. PASO 2: Cargar la base de datos Para cargar la base de datos se utilizar el botn OPEN FILE del interfaz Explorer (pestaa Preprocess), se seleccionar el directorio data y dentro de l, el fichero weather.arff. El resultado ser una pantalla como la que se muestra en la figura:

En la parte izquierda de la pantalla aparecen los cinco atributos mencionados: Outlook Temperature. Humidity. Windy. Play. Haciendo clic sobre cada uno de los atributos, se muestra informacin sobre el mismo en la parte derecha de la ventana. En el caso de atributos discretos se indica el nmero de instancias que toman cada uno de los valores posibles; y en el caso de atributos reales se muestran los valores mximo, mnimo, medio y la desviacin estndar. Asimismo, se muestra un grfico en el que las distintas clases (juega o no juega) se representan con colores distintos, en funcin de los valores del atributo elegido.

Botn VISUALIZE ALL Podemos notar qu tipo de datos es de tipo discreto y continuo. PASO 3: Generacin de grficos Para generar grficos con los datos del ejemplo, se seleccionar la pestaa Visualize. Por defecto, se muestran grficos para todas las combinaciones de atributos tomadas dos a dos, de modo que se pueda estudiar la relacin entre dos atributos cualesquiera. El aspecto de la pantalla es el mostrado en la figura siguiente:

Si se desea mostrar un grfico concreto, basta con hacer doble clic sobre l. Por ejemplo, haciendo doble clic sobre el grfico que relaciona el aspecto del cielo con la decisin de jugar o no (play / outlook) se muestra el grfico de la figura siguiente:

Segn el grfico, cuando el da es soleado puede tomarse la decisin de jugar o no (aparecen ejemplos de valor si (azules) y ejemplos de valor no (rojos). Cuando el cielo est cubierto, se juega siempre; y cuando el da es lluvioso tambin se pueden tomar las dos decisiones. Un problema que presenta el grfico es que los puntos se superponen, con lo cual es imposible determinar cuntos ejemplos representa cada cruz. Para solucionar este problema, se introduce un ruido en el grfico (perturbaciones aleatorias de los valores) de modo que los puntos superpuestos se separen. Para introducir el ruido se utiliza la funcin jitter, desplazando el cursor hasta que la visualizacin sea la deseada. Una posible visualizacin se muestra en la figura siguiente:

5. GENERACIN DE UN RBOL DE DECISIN CON WEKA Una vez vistas las posibilidades de representacin grfica, se probar uno de los algoritmos de aprendizaje automtico incluidos en WEKA: los rboles de decisin. Se intentar generar un rbol de decisin que se corresponda con los ejemplos de la base de datos anterior. Para ello se seleccionar la pestaa Classify y se elegir un clasificador pulsando el botn Choose. Aparecer una estructura de directorios en la que se seleccionar el directorio trees y dentro de l, el algoritmo J48. Se mantendrn las opciones por defecto del clasificador (J48 C 0.25 M 2), tal y como muestra la pantalla siguiente. El resto de opciones para el experimento tambin se mantendrn en los valores por defecto: activa la opcin de test cross validation e inactivas las restantes. Para generar el rbol se pulsar Start. El resultado ser el que muestra la pantalla siguiente, donde se muestran en modo texto tanto el rbol generado como la capacidad de clasificacin del mismo:

Si se analiza la informacin que se ofrece en modo texto, se puede destacar lo siguiente: En primer lugar, se muestra informacin sobre el tipo de clasificador utilizado (algoritmo J48), la base de datos sobre la que se trabaja (weather) y el tipo de test (cross validation).
=== Run information === Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2 Relation: weather Instances: 14 Attributes: 5 outlook temperature humidity windy play Test mode: 10-fold cross-validation

A continuacin se muestra el rbol que se ha generado y el nmero de instancias que clasifica cada nodo:
=== Classifier model (full training set) === J48 pruned tree -----------------outlook = sunny | humidity <= 75: yes (2.0) | humidity > 75: no (3.0) outlook = overcast: yes (4.0) outlook = rainy | windy = TRUE: no (2.0) | windy = FALSE: yes (3.0) Number of Leaves Size of the tree : : 5 8

Y por ltimo se muestran los resultados del test (indican la capacidad de clasificacin esperable para el rbol y la matriz de confusin):
Time taken to build model: 0.01 seconds === Stratified cross-validation === === Summary === Correctly Classified Instances Incorrectly Classified Instances Kappa statistic Mean absolute error Root mean squared error Relative absolute error Root relative squared error Total Number of Instances === Detailed Accuracy By Class === 9 5 0.186 0.2857 0.4818 60 % 97.6586 % 14 64.2857 % 35.7143 %

TP Rate Area 0.789 Class 0.778 yes 0.4 0.789 no Weighted Avg. 0.789 0.643

FP Rate 0.6 0.222 0.465

Precision 0.7 0.5 0.629

Recall 0.778 0.4 0.643

F-Measure 0.737 0.444 0.632

ROC

=== Confusion Matrix === a b <-- classified as 7 2 | a = yes 3 2 | b = no

Tambin es posible visualizar el rbol de decisin de una forma ms legible. Para ello se debe hacer clic con el botn derecho en la ventana de resultados, sobre el resultado de la generacin del rbol. Aparecer un men desplegable:

Y dentro de ese men se deber seleccionar la opcin Visualize tree. El resultado se muestra en la figura siguiente:

Tenemos el rbol de clasificacin y ahora qu? Ahora que tenemos el rbol, solo tenemos que utilizarlo con los datos meteorolgicos de hoy para saber si vamos a poder jugar al tenis. Por ejemplo, supongamos que hoy tenemos un da soleado y con humedad del 85%. Si seguimos el rbol, comprobaremos que lo ms seguro es que hoy no podamos jugar al tenis. 6. INTRODUCCIN DE DATOS PROPIOS EN WEKA A continuacin se har funcionar WEKA con datos propios, distintos de los datos de ejemplo utilizados hasta ahora. Para ello ser fundamental guardar los datos en el tipo de formato utilizado por WEKA (ficheros con extensin .arff) Como ejemplo, se muestra el fichero utilizado en la primera parte de la prctica: @relation weather @attribute outlook {sunny, overcast, rainy} @attribute temperature real @attribute humidity real @attribute windy {TRUE, FALSE} @attribute play {yes, no} @data sunny,85,85,FALSE,no sunny,80,90,TRUE,no overcast,83,86,FALSE,yes rainy,70,96,FALSE,yes rainy,68,80,FALSE,yes rainy,65,70,TRUE,no overcast,64,65,TRUE,yes sunny,72,95,FALSE,no sunny,69,70,FALSE,yes rainy,75,80,FALSE,yes

sunny,75,70,TRUE,yes overcast,72,90,TRUE,yes overcast,81,75,FALSE,yes rainy,71,91,TRUE,no

El encabezado del fichero contiene el nombre de la base de datos, en este caso weather. @relation weather A continuacin se indican los atributos que existen y los valores que pueden tomar cada uno de ellos. Pueden ser atributos reales (cualquier valor) o atributos discretos (se deben especificar los posibles valores entre parntesis). @attribute outlook {sunny, overcast, rainy} @attribute temperature real @attribute humidity real @attribute windy {TRUE, FALSE} @attribute play {yes, no} Por ltimo, la lnea @data y a continuacin todos los datos, uno por cada lnea, y en el orden indicado para los atributos. @data sunny,85,85,FALSE,no sunny,80,90,TRUE,no overcast,83,86,FALSE,yes Crearemos un fichero para WEKA con un ejemplo propio: datos sobre la posibilidad de fallo de una mquina en funcin de ciertos atributos medidos: vibraciones, temperatura, tiempo desde la ltima revisin y horas de funcionamiento. Estos datos se muestran a continuacin:

Para evitar teclearlos, los datos estn disponibles tambin en una hoia Excel en la siguiente direccin de internet: http://isa.umh.es/isa/es/asignaturas/aprendizaje/maquina.xls

NOTA. Para pasar un archivo .xls a .arff Se graba el archivo Excel con extensin .CSV Cargamos con weka el archivo y grabamos con extensin .arff
IV. TRABAJO PARA ENTREGAR EN LA SIGUIENTE SESIN

Clasifique los siguientes datos,(anexo) utilice los algoritmo ID3 y J48 Implemente en un lenguaje de programacin el rbol de desicin
V. EQUIPOS Y MATERIALES Gua de laboratorio Computadora personal Weka

You might also like