1. Preliminares Aprendizaje 2. Algoritmos genéticos y redes neuronales 3. Inducción de árboles clasificadores 4. Inducción de reglas 5. Minería de datos c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 1 Inducción de árboles de clasificación Árboles de clasificación Procedimiento CLS Valor informativo de un atributo Construcción del árbol Algoritmo ID3 y derivados c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 2
Clasificadores: Árboles de clasificación: ejemplo Una red neuronal de tipo MLP, una vez entrenada, clasifica objetos caracterizados por atributos numéricos Un árbol de clasificación, una vez construido, clasifica objetos caracterizados por atributos nominales (o binarios) Ejemplo: pelo N C - + R V ojos O + - Si (v(pelo) = «negro») entonces Si (v(pelo) = «castaño») entonces «+» Si (v(pelo) = «rubio») y (v(ojos) = «verdes») entonces «+» Si (v(pelo) = «rubio») y (v(ojos) = «oscuros») entonces c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 3 Inducción de árboles de clasificación Años 60: modelos informales de psicología cognitiva: elección de atributos más significativos para formar conceptos Hunt et al. (1966): CLS (Concept Learning System) CHAID (Chi-squared Automatic Interaction Detection) (Hartigan, 1975) CART (Classification And Regression Trees) (Friedman, 1977; Briemen et al. 1984) ID3 (Iterative Dichotomizer) (Quinlan, 1979) C4.5 (Quinlan, 1993) y C5.0 (comercial) c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 4
Procedimiento CLS Dado E ={e}, con e={ x e, f( x e ) } ={ v(a 1 ),v(a 2 ),...v(a n ),C j } genera árbol de clasificación (clasificador) mínimo (nodos: atributos; arcos: valores) ÔÖÓ Ñ ÒØÓ ÄË µ ØÓ Ó Ø Ò Ø ÖÑ Ò Ö ÓÒ Ó ÒÓ Ö Ö ÒÓ Ó ØÖ ÙØÓ Ñ ÓÖ Ô ÖØ ÓÒ Ö ÔÓÖ Ú ÐÓÖ ØÖ ÙØÓ Ô Ö Ô ÖØ Ò ÄË Ô ÖØ Òµ c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 5 Cuál es el mejor atributo? El que más información da Volumen (páginas) v23 v22 v21 Precio v11 v12 v13 v14 Autor : clase 1: se ha interesado : clase 2: no se ha interesado Es mejor Precio o Volumen? c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 6
Por qué es mejor Volumen? Entropía Porque da más información (reduce más la incertidumbre) Medida de la incertidumbre: entropía H = (p k lg 2 p k ) k p k : probabilidad de que un ejemplo esté en la clase k: p k = n k k n k con n k = número de ejemplos en la clase k Si hay dos clases, 0 H 1 c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 7 Entropía en el ejemplo Entropía inicial: H 0 = ( 5 10 lg 5 10 ) ( 5 10 lg 5 10 ) = 1 bit Volumen (páginas) v23 v22 v21 v11 v12 v13 v14 Precio Autor : clase 1: se ha interesado : clase 2: no se ha interesado Entropía media tras conocer el valor de Precio: H P = 10 2 0+ 10 ( 1 3 3 lg 1 3 2 3 lg 2 3 )+ 10 ( 2 3 3 lg 2 3 1 3 lg 1 3 )+ 10 2 0 = 0,55 bits Entropía media tras conocer el valor de Volumen: H V = 10 3 0+ 10 ( 1 4 2 lg 1 2 1 2 lg 1 2 )+ 10 3 0 = 0,4 bits Ganancia de información por Precio: H 0 H P = 0,45 bits Ganancia de información por Volumen: H 0 H V = 0,6 bits c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 8
v(a1)=v1 N1 v2 N2 Valor informativo de un atributo 1 1 2 2 N0 p = n /(n + n ) 1 1 1 2 p = n /(n + n ) 2 2 1 2 vi p = n /(n + n ) i1 i1 i1 i2 Ni p i2 = n i2 /(n + n i2 ) i1 i1 1 i2 2 H(N0) = -(p log p + p log p ) 1 2 1 2 2 2 H(Ni ) = -(p log p + p log p ) i1 2 i1 i2 2 i2 H(N0 A1) = Pr{v(A1) = vi}*h(ni) = [(n + n )/(n + n )]*H(Ni) i1 i2 1 2 i i Reducción de entropía = información ganada por A1 = H(N 0 ) H(N 0 A1) c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 9 Construcción del árbol (1) Atrib. Valores Clases talla Alto, Bajo +, pelo Negro, Cast., Rubio ojos Verdes, Oscuros Inicialmente: p + = 3/8; p = 5/8; H(N 0 )= ( 3 8 lg 2 3 8 + 5 8 lg 2 5 8 ) = 0,954 bits talla pelo ojos clase B R V + A R O A C V + B N V A N V A R V + A N O B R O Ejemplo de Quinlan (1983). Trivial, pero ilustra aplicaciones reales: descubrir criterio de selección, factores que influyen en comportamiento (violencia, hábitos de compra... ) c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 10
Construcción del árbol (2) talla A ARO ACV+ ANV ARV+ ANO (5/8) B BRV+ BNV BRO+ (3/8) Valor informativo de «talla»: H(N 0 A)= ( 3 5 lg 2 3 5 + 2 5 lg 2 2 5 )=0,971 H(N 0 B)= ( 1 3 lg 2 1 3 + 2 3 lg 2 2 3 )=0,918 H(N 0 talla)= 5 8 0,971+ 3 8 0,918=0,951 Ganancia de información por «talla»: H(N 0 ) H(N 0 talla)=0,954 0,951=0,003 bits c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 11 Construcción del árbol (3) Valor informativo de «pelo»: N pelo C R H(N 0 N)= ( 3 3 lg 2 3 3 + 3 0 lg 2 0 3 )=0 H(N 0 C)=0 BRV+ ARO- ARV+ BRO- BNV- ANV- ANO- (3/8) AVC+ (1/8) (4/8) H(N 0 R)= ( 1 2 lg 2 1 2 + 2 1 lg 2 1 2 )=1 H(N 0 pelo)= 3 8 0+ 1 8 0+ 8 4 1=0,5 Ganancia de información por «pelo»: H(N 0 ) H(N 0 pelo)=0,954 0,5=0,454 bits c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 12
ojos Construcción del árbol (4) Valor informativo de «ojos»: V BRV+ ACV+ BNV- ANV- ARV+ (5/8) O ARO- ANO- BRO- (3/8) H(N 0 V)= ( 5 2 lg 2 2 5 + 5 3 lg 2 3 5 )=0,971 H(N 0 O)=0 H(N 0 ojos)= 5 8 0,971+ 8 3 0=0,607 Ganancia de información por «ojos»: H(N 0 ) H(N 0 ojos)=0,954 0,657=0,347 bits c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 13 Construcción del árbol (5) Mejor atributo hasta ahora: pelo Árbol provisional: pelo N C R - + BRV+ ARO- ARV+ BRO- H(N1)=1 c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 14
Construcción del árbol (6) Dado el valor de «pelo» quedan 4 ejemplos, 2 «+» y 2 talla: A ARO- ARV+ talla B BRV+ BRO- H(N talla) = 1 Ganancia: 0 ojos: ARO- BROojos V BRV+ ARV+ O H(N ojos) = 0 Ganancia: 1 c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 15 Construcción del árbol (7) Árbol resultante: Reglas: pelo Si (v(pelo) = «negro») entonces - N C + R ojos V O + - Si (v(pelo) = «castaño») entonces «+» Si (v(pelo) = «rubio») y (v(ojos) = «verdes») entonces «+» Si (v(pelo) = «rubio») y (v(ojos) = «oscuros») entonces c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 16
p k = n k n 1 + n 2 +...+n K ; ID3: generalización para K clases H(N)= K k=1 (p k lg 2 p k ); 0 H(N) lg 2 K Partición por el atributo A con valores v1, v2,... : p ik = n ik n i1 +n i2 +... +n ik H i = k (p ik lg 2 p ik ) v(a)=v1 N1 1 1 p 1 = n 1 /(n 1 + n 2 +... + n K ) p = n /(n + n +... + n ) 2 2 2 2 1 2 K --- --- p = n /(n + n +... + n ) K K K K 1 2 K v2 N2 N vi Ni i1 1 i2 2 --- ik K Valor medio de la entropía después de saber el valor de A: H(N A) = n i=1 Pr(v(A)=v i ) H i = n i=1 ( k n ik ) H i i k n ik Reducción media de la entropía = información ganada por A = H(N) H(N A) c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 17 Es la ganancia la mejor medida? En el ejemplo de Quinlan supongamos un cuarto atributo: un número de identificación Qué árbol se induce? H(N 0 1)=H(N 0 2)=...=H(N 0 8)=0 Es decir, H(N 0 ID)=0! ID talla pelo ojos clase 1 B R V + 2 A R O 3 A C V + 4 B N V 5 A N V 6 A R V + 7 A N O 8 B R O Causa: con la ganancia se da preferencia a atributos con muchos valores posibles que conducen a nodos con pocos ejemplos. Una solución: ponderar la ganancia del atributo teniendo en cuenta el número de nodos resultantes y el número de ejemplos en cada uno, independientemente de la clasificación de estos ejemplos en cada nodo c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 18
Entropía de un atributo Medida de la cantidad de información necesaria para determinar a qué partición (rama del árbol) se asigna un ejemplo: a más ramas y a menos ejemplos por rama, más entropía. v(a1)=v1 N1 v2 N2 1 1 2 2 N0 p = n /(n + n ) 1 1 1 2 p = n /(n + n ) 2 2 1 2 vi p = n /(n + n ) i1 i1 i1 i2 Ni p i2 = n i2 /(n + n i2 ) i1 i1 1 i2 2 H(N0) = -(p log p + p log p ) 1 2 1 2 2 2 H(Ni ) = -(p log p + p log p ) i1 2 i1 i2 2 i2 H(N0 A1) = Pr{v(A1) = vi}*h(ni) = [(n + n )/(n + n )]*H(Ni) i1 i2 1 2 i i Entropía de A1 en N 0 : H(A1)= i (p i lg 2 p i ) donde: p i = n i /n, con n i = n i1 + n i2 y n= i n i c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 19 Ganancia ponderada, o tasa de ganancia G P (A)= H(N) H(N A) H(A) En el ejemplo, en N 0 H(ID)= ( 8 1 lg 2 1 ) 8=3(8 ramas, 1 ejemplo por rama) 8 H(talla)=H(ojos)= ( 8 5 lg 2 5 8 + 8 3 lg 2 3 8 )=0,954 (dos ramas, 5 + 3 ejemplos) H(pelo)= ( 3 8 lg 2 3 8 + 8 1 lg 2 1 8 + 4 8 lg 2 4 8 )=1,406 Y el mejor atributo es... ID talla pelo ojos Ganancia, G 0,954 0,003 0,454 0,347 Entropía, H 3,0 0,954 1,406 0,954 G P = G/H 0,318 0,003 0,323 0,364 c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 20
Árbol resultante en el ejemplo con la ganancia ponderada ID talla pelo ojos Ganancia, G 0,954 0,003 0,454 0,347 Entropía, H 3 0,954 1,406 0,954 G P = G/H 0,318 0,003 0,323 0,364 ID talla pelo Ganancia, G 0,971 0,020 0,971 Entropía, H 2,322 0,951 1,522 G P = G/H 0,418 0,0021 0,638 N V pelo C ojos R O + + c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 21 Mejoras sobre ID3 Datos con «ruido» evitando sobreajuste Atributos con valores continuos Ejemplos incompletos Costes de los atributos Muchas implementadas en C4.5 (Quinlan, 1993) y derivados c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 22
Sobreajuste (overfitting) (1) Una hipótesis h H sobreajusta los datos del conjunto de entrenamiento (ejemplos) si existe una hipótesis alternativa h H tal que: h tiene menor error que h sobre los ejemplos, pero h tiene menor error que h sobre el universo (E) Causa: Unos pocos ejemplos con ruido hacen crecer artificialmente al árbol c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 23 Heurístico: poda Sobreajuste (overfitting) (2) temprana (durante la construcción del árbol) tardía (después de construido) Criterios para la poda: un segundo conjunto de entrenamiento (conjunto de validación) pruebas estadísticas para estimar si la expansión (o la poda) de un nodo puede mejorar la precisión sobree medidas de la complejidad de la enumeración de los ejemplos y de la descripción del árbol (Minimum Description Length) c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 24
Discretización Atributos con valores continuos Dependiente del conocimiento de base del dominio Por ejemplo: Edad {niño, joven, adulto, viejo} Temperatura {baja, normal, alta} Automática. Por ejemplo: v(a) 40 48 60 72 80 90 - - + + + - 54 85 puntos de corte v(a) {v(a) > 54, v(a) > 85} c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 25 Ejemplos incompletos Estimación del valor de un atributo en un ejemplo en el que falta: valor = «desconocido» el más frecuente entre los ejemplos que sí lo tienen (atributos nominales) un valor medio, ponderado o no (atributos numéricos) c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 26
Costes de medida de atributos 1. Definición de una función de coste, C(A) 2. Ponderación de la función Ganancia (muy dependiente del dominio): G 2 (A) C(A) (Tan, 1993: robótica) 2 G(A) 1 (C(A)+1) α (Núñez, 1991: diagnóstico médico) c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 27 Software para inducción de árboles C4.5: ØØÔ»»ÛÛÛºÖÙÐ Õ٠غÓÑ»È Ö ÓÒ Ð» Integrado (con distintas variantes) en muchas herramientas de minería de datos ITI (Incremental Tree Inducer) ØØÔ»»ÛÛÛ¹ÐÖÒº ºÙÑ º Ù» Ø» Ò Üº ØÑÐ Enlaces a programas comerciales y libres en: ØØÔ»»ÛÛÛº ÒÙ Ø ºÓÑ» Ó ØÛ Ö» Ð Ø ÓÒ¹ ÓÒ¹ØÖ º ØÑÐ c 2010 DIT-ETSIT- Aprendizaje: árboles transp. 28