Práctica 9. Árboles de decisión

Documentos relacionados
Práctica 2: Utilización de WEKA desde la línea de comandos.

Aprendizaje Automatizado. Árboles de Clasificación

Práctica 1: Entorno WEKA de aprendizaje automático y data mining.

Aprendizaje Automatizado. Árboles de Clasificación

Aprendizaje Automático para el Análisis de Datos GRADO EN ESTADÍSTICA Y EMPRESA. Ricardo Aler Mur

CAPITULO I INTRODUCCIÓN

Primeros pasos con Knime. Luis P. Guerra Velasco

Predicción meteorológica

Arboles de Decisión (II) Carlos Hurtado L. Depto de Ciencias de la Computación, Universidad de Chile

~ ALGORITMO C4.5 ~ INGENIERÍA EN SISTEMAS COMPUTACIONALES INTELIGENCIA ARTIFICIAL ING. BRUNO LÓPEZ TAKEYAS

CI5438. Inteligencia Artificial II Clase 4: Aprendizaje en Árboles. Cap 18.3: RN

Orientaciones para firmar con AutoFirma en MS Windows

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Práctica 2. Búsqueda I

Instalación y verificación de la Tarjeta Criptográfica

INSTALACIÓN Y VERIFICACIÓN DE LA TARJETA CRIPTOGRÁFICA

Ejercicios. Invocación de Servicios Web SOAP

Cómo descargar, instalar y verificar JAVA

Clasificación. Clasificadores Bayesianos

Herramientas de Minería de datos: WEKA (Waikato Environment for Knowledge Analysis)

Práctica 5: Clasificación con número variable de ejemplos.

Cómo descargar, instalar y verificar JAVA

Aplicación Android para el acceso a un SGBD con servicios de seguridad

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

Inducción de Árboles de Decisión ID3, C4.5

Práctica 3: Almacenamiento de modelos con WEKA.

Inteligencia Artificial Técnicas de clasificación

Práctica de Control Estadístico de Procesos Control por Variables

INSTALACIÓN DE JINITIATOR Y DEL CERTIFICADO PARA PODER TRABAJAR CON LA APLICACIÓN SAICIW

INSTALACIÓN Y VERIFICACIÓN DE LA TARJETA CRIPTOGRÁFICA

Tema 8: Árboles de decisión

Técnicas de clasificación. Prof. Dra. Silvia Schiaffino ISISTAN - CONICET. Inteligencia Artificial

Práctica 1. MATHEMATICA permite trabajar con expresiones simbólicas que involucran parámetros, etc.

Rubén Antonio Quintana Tepaz. Manual Introductorio de utilización de Bloques Básicos ExtendSim 7 Lt

ANÁLISIS DE DATOS. Jesús García Herrero

roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. Nociones básicas de programación

Direccionamiento IP de Redes Presentación sobre Como gestionar los parámetros de configuración de Red en Windows

Instrumentación Virtual con LabVIEW

Redes Bayesianas (1) Carlos Hurtado L. Depto. de Ciencias de la Computación, Universidad de Chile

Instalación de MPE. (MPI Parallel Environment) Programación Distribuida y Paralela. Departamento del LSI. Universidad de Granada

UNIVERSIDAD NACIONAL DE INGENIERÍA Departamento de Lenguajes y Simulación Guía de laboratorio I

COMANDOS DE SISTEMAS OPERATIVOS MS-DOS - CMD

Sistemas Inteligentes de Gestión. Guión de Prácticas de Minería de Datos. Práctica 2. Reglas de Asociación

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

PYTHON. Programación básica

Arboles de Decisión (II) Carlos Hurtado L. Depto de Ciencias de la Computación, Universidad de Chile

Documento explicativo: Errores comunes con Microsoft Office

Usando HADES Parte 3

Tema 7: Aprendizaje de árboles de decisión

PROGRAMAS PARA LA CLASSPAD MANAGER.

DESCARGA AUTOMÁTICA DE FICHEROS

INSTALACIÓN Y VERIFICACIÓN DE LA TARJETA CRIPTOGRÁFICA

Capitulo 4. Introducción a Haskell. Instalación de Haskell. Primeros pasos con Haskell.

ADMINISTRADOR DE DISPOCITIVOS

Ejercicios de Persistencia: Introducción a Hibernate

Breve descripción de la utilidad Spool Excel

CLASE 1 de VISUAL BASIC (V6)

Árboles de decisión en aprendizaje automático y minería de datos

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Práctica 1: Introducción a MATLAB.

Data Science. Habilidades. Dificultad. Notas. Módulo 2. Introducción a RStudio. Lección 2.1. Herramientas

Requisitos técnicos para firmar con AutoFirma

ESTRUCTURAS DE CONTROL

Sentencias de control de flujo

Desarrollo de editores textuales con Xtext

NOCIONES BASICAS DE Miguel Iván Bobadilla

Estructuras de control selectivas

ADMINISTRACIÓN DE SISTEMAS OPERATIVOS. 2º ASIR. CURSO 17/18 NFS... 2 INTRODUCCIÓN. NFS... 2 HISTORIA... 2 INSTALACIÓN... 2

ARBOLES DE DECISION. Miguel Cárdenas-Montes. 1 Introducción. Objetivos: Entender como funcionan los algoritmos basados en árboles de decisión.

CALCULO GRADO EN INGEN. INFORM. DEL SOFTWARE PRACTICA 1. INTRODUCCIÓN A MATLAB

Cambio de firmware de los LEGO NXT compatible con Enchanting

INSTRUCCIONES DE ACTUALIZACIÓN PARA LEPFIT01. PRIMER PASO Descargar y descomprimir -

CURSOS DE VERANO 2014

Intervalos de confianza con STATGRAPHICS

Máquinas de vectores soporte con R

Transcripción:

Práctica 9 Árboles de decisión

En esta práctica vamos a ver un sistema de aprendizaje basado en árboles de decisión capaz de generar un conjunto de reglas. Este sistema es el más utilizado y conocido. 1 C4.5 C4.5 es el nombre del sistema de aprendizaje que vamos a utilizar. Lo puedes obtener en: http://www.aic.uniovi.es/ssii/p9/winc4.5.zip Al descomprimirlo verás varios ejecutables y un directorio con conjuntos de entrenamiento. Veamos un ejemplo de utilización. Para ello vamos a utilizar el conjunto golf. En fichero golf.names está la descripción de los atributos: Play, Don't Play. outlook: sunny, overcast, rain. temperature: continuous. humidity: continuous. windy: true, false. Tiene dos clases: jugar o no jugar. Y tiene cuatro atributos: dos simbólicos y dos numéricos. Los simbólicos indican los símbolos que pueden tomar. En el fichero golf.data están los ejemplos: sunny, 85, 85, false, Don't Play sunny, 80, 90, true, Don't Play overcast, 83, 78, false, Play rain, 70, 96, false, Play rain, 68, 80, false, Play rain, 65, 70, true, Don't Play overcast, 64, 65, true, Play sunny, 72, 95, false, Don't Play sunny, 69, 70, false, Play rain, 75, 80, false, Play sunny, 75, 70, true, Play overcast, 72, 90, true, Play overcast, 81, 75, false, Play rain, 71, 80, true, Don't Play Son 14 ejemplos. Cada ejemplo tiene un valor para cada atributo y su clase o categoría. Desde una ventana de MS-DOS vamos a ejecutar el algoritmo: $ c4.5 f Data\golf Obtenemos la siguiente salida: C4.5 [release 8] decision tree generator Fri May 06 10:50:15 2005 ---------------------------------------- Options: File stem <Data\golf>

Read 14 cases (4 attributes) from Data\golf.data Decision Tree: outlook = overcast: Play (4.0) outlook = sunny: humidity <= 75 : Play (2.0) humidity > 75 : Don't Play (3.0) outlook = rain: windy = true: Don't Play (2.0) windy = false: Play (3.0) Tree saved Evaluation on training data (14 items): Before Pruning After Pruning ---------------- --------------------------- Size Errors Size Errors Estimate 8 0( 0.0%) 8 0( 0.0%) (38.5%) << Como vemos, se genera un árbol de decisión más fácilmente comprensible mediante la representación gráfica de la figura 1. Entre paréntesis aparece el número de ejemplos de entrenamiento que va a cada hoja del árbol. Si nos encontrásemos con que una hoja tiene (4.0/2.0) querría decir que de los cuatro ejemplos que clasifica esa hoja, falla dos. Figura 1.- Representación gráfica del árbol de decisión En la salida del algoritmo se ve también el resultado del árbol antes y después de podar. Size es el número de nodos del árbol, Errors el número de errores en el conjunto de entrenamiento y Estimate el porcentaje de error que estima que tendría sobre un conjunto de test.

Si tenemos un conjunto de test, podemos utilizar el parámetro u, que hace que el algoritmo, una vez haya aprendido, evalúe su árbol sobre el conjunto de test mostrándonos los resultados y la matriz de confusión. La ejecución de c4.5 genera dos ficheros: golf.unpruned. El árbol sin podar. golf.tree. El árbol podado, que es necesario para ejecutar c4.5rules y consult. Podríamos, ahora, ejecutar consult. Este programa nos permite evaluar nuevos ejemplos. $ consult f Data\golf C4.5 [release 8] decision tree interpreter Fri May 06 12:54:13 2005 ------------------------------------------ outlook: sunny humidity: 34 Decision: Play CF = 1.00 [ 0.50-1.00 ] Retry, new case or quit [r,n,q]: q Podemos obtener reglas a partir del árbol. Esto se logra con el algoritmo c4.5rules: $ c4.5rules f Data\golf C4.5 [release 8] rule generator Fri May 06 12:58:18 2005 ------------------------------- Options: File stem <Data\golf> Read 14 cases (4 attributes) from Data\golf ------------------ Processing tree 0 Final rules from tree 0: Rule 2: outlook = overcast -> class Play [70.7%] Rule 4: outlook = rain windy = false -> class Play [63.0%] Rule 1: outlook = sunny humidity > 75 -> class Don't Play [63.0%] Rule 3: outlook = rain windy = true -> class Don't Play [50.0%]

Default class: Play Evaluation on training data (14 items): Rule Size Error Used Wrong Advantage ---- ---- ----- ---- ----- --------- 2 1 29.3% 4 0 (0.0%) 0 (0 0) Play 4 2 37.0% 3 0 (0.0%) 0 (0 0) Play 1 2 37.0% 3 0 (0.0%) 3 (3 0) Don't Play 3 2 50.0% 2 0 (0.0%) 2 (2 0) Don't Play Tested 14, errors 0 (0.0%) << (a) (b) <-classified as ---- ---- 9 (a): class Play 5 (b): class Don't Play Vemos que aparecen varias reglas y al final una clase por defecto. Los ejemplos que no cumplan las condiciones de ninguna regla serán clasificados con el valor que tiene la clase por defecto. Entre corchetes se indica el acierto esperado de cada regla. Aparece, luego, una tabla con los siguientes valores: Rules: número de regla que le asignó c4.5rules Size: número de antecedentes de la regla Error: el error esperado de la regla Used: número de veces que fue utilizada Wrong: número de veces que ha fallado Advantage: ventaja entre aciertos y fallos de la regla. Por ejemplo, si tenemos 2(3 1) quiere decir que esta regla se ha utilizado 4 veces: tres veces correctamente y una vez de manera incorrecta. Por tanto la ventaja es dos. Finalmente vemos la matriz de confusión. La ejecución de c4.5rules genera un fichero: golf.rules. Este fichero almacena las reglas y es necesario para ejecutar el programa consultr. Podemos, por tanto, utilizar consultr para evaluar un ejemplo con las reglas: $ consult f Data\golf C4.5 [release 8] production rule interpreter Fri May 06 13:21:11 2005 -------------------------------------------- outlook: sunny Decision: Play (default class) Retry, new case or quit [r,n,q]: q Se puede encontrar más información en el siguiente enlace: http://www2.cs.uregina.ca/~dbd/cs831/notes/ml/dtrees/c4.5/tutorial.html

1.1 Trabajo Aplicar este algoritmo sobre los conjuntos de datos que aparecen en el directorio Data. 2 Como utilizarlo en Spider El Spider no es el único entorno de experimentación de Aprendizaje Automático, existen otros, como por ejemplo el Weka (http://www.cs.waikato.ac.nz/ml/weka/), donde los algoritmos están implementados en Java. La última versión del Spider permite la ejecución de los algoritmos implementados para el Weka. Para ello, necesitamos colocar el fichero weka.jar en el directorio C:\Archivos de programa\matlab\r2007a\java\jar de nuestro sistema. En los ordenadores de la escuela, no es necesario hacer esto, ya que ha sido instalado con anterioridad. En vuestras casas, sin embargo, deberéis hacerlo. El fichero weka.jar podéis obtenerlo descargando el weka o copiándolo de los ordenadores de la escuela. Si todo está correctamente instalado, al ejecutar el comando use_spider del spider debería aparecer en algún momento el siguiente texto: WEKA support enabled! Por qué estamos tan interesados en instalar el Weka? Porque tienen una implementación del C4.5 llamada j48 (?) y la nueva versión de Spider nos permite utilizarla como un algoritmo más. Veamos un problema en el que tenemos 200 ejemplos en un espacio bidimensional uniformemente distribuidos en el intervalo [0,1]: >> x=rand(200,2); >> y=ones(200,1); Serán de clase positiva todos los ejemplos excepto aquellos cuyas coordenadas cumplan que ambas son menores que 0.5 o la primera mayor que 0.75 y la segunda mayor que 0.9. >> indexneg=find(x(:,1)<0.5 & x(:,2)<0.5); >> y(indexneg)=-1; >> indexneg=find(x(:,1)>0.75 & x(:,2)>0.9); >> y(indexneg)=-1; >> d=data(x,y); Ahora ya podemos crear un sistema j48 y experimentar con el utilizando las técnicas de evaluación vistas en la práctica anterior. >> a=j48; >> [r s]=train(cv(a),d); >> get_mean(r) Podemos también ver el árbol que genera cuando hacemos un entrenamiento simple: >> [r s]=train(a,d) % vemos el árbol

training j48... data -> j48 data dimensions: X = 200x1 Y = 200x1 J48 pruned tree ------------------ inp 2 <= 0.485229 inp 1 <= 0.495177: out 1 (55.0) inp 1 > 0.495177: out 2 (39.0) inp 2 > 0.485229 inp 2 <= 0.900852: out 2 (89.0) inp 2 > 0.900852 inp 1 <= 0.741258: out 2 (12.0) inp 1 > 0.741258: out 1 (5.0) Number of Leaves : 5 Size of the tree : 9 Incluso podemos ver gráficamente las reglas si trabajamos con problemas de dos dimensiones: >> plot(s,d) Fíjate que se le pasa como parámetro s, que es el sistema entrenado. Figura 2.- Reglas generadas por el j48

2.1 Trabajo En la práctica anterior nos conectamos al Web: http://www.ics.uci.edu/~mlearn/mlrepository.html y experimentamos con diferentes conjuntos de datos. Utiliza el j48 para aprender sobre esos conjuntos. Qué sistema te ofrece mejores resultados? El knn? El j48?