1. Preliminares Aprendizaje 2. Algoritmos genéticos y redes neuronales Aprendizaje: árboles 3. Inducción de árboles clasificadores 4. Inducción de reglas c 2010 DIT-ETSIT-UPM Aprendizaje: árboles Algoritmo ID3 y derivados Construcción del árbol Valor informativo de un atributo Procedimiento CLS Árboles de clasificación Inducción de árboles de clasificación c 2010 DIT-ETSIT-UPM 5. Minería de datos UPM UPM transp. 1 transp. 2 Árboles de clasificación: ejemplo Clasificadores: Una red neuronal de tipo MLP, una vez entrenada, clasifica objetos caracterizados por atributos numéricos pelo C R 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 «–» transp. 3 Un árbol de clasificación, una vez construido, clasifica objetos caracterizados por atributos nominales (o binarios) N + V + Aprendizaje: árboles • ID3 (Iterative Dichotomizer) (Quinlan, 1979) Aprendizaje: árboles C4.5 (Quinlan, 1993) y C5.0 (comercial) c 2010 DIT-ETSIT-UPM transp. 4 • CART (Classification And Regression Trees) (Friedman, 1977; Briemen et al. 1984) • CHAID (Chi-squared Automatic Interaction Detection) (Hartigan, 1975) Hunt et al. (1966): CLS (Concept Learning System) Años 60: modelos informales de psicología cognitiva: elección de atributos más significativos para formar conceptos Inducción de árboles de clasificación c 2010 DIT-ETSIT-UPM - Ejemplo: UPM UPM UPM Procedimiento CLS Dado E = {e}, con e = {h~ xe, f (~xe)i} = {hv(A1), v(A2), . . . v(An),C j i} genera árbol de clasificación (clasificador) mínimo (nodos: atributos; arcos: valores) Aprendizaje: árboles proedimiento CLS(E) si todo e está en Cj terminar on hoja "Cj" si no rear nodo = atributo "mejor"; partiionar E por valores atributo; para ada partiión CLS(partiión) c 2010 DIT-ETSIT-UPM ¿Cuál es el mejor atributo? El que más información da Precio Aprendizaje: árboles : clase 1: se ha interesado : clase 2: no se ha interesado v11 v12 v13 v14 Volumen (páginas) v23 v22 v21 Autor c 2010 DIT-ETSIT-UPM ¿Es mejor Precio o Volumen? UPM transp. 5 transp. 6 Entropía ¿Por qué es mejor Volumen? Porque da más información (reduce más la incertidumbre) Medida de la incertidumbre: entropía k H = − ∑(pk × lg2 pk ) Volumen (páginas) v23 v22 v21 transp. 7 : clase 1: se ha interesado : clase 2: no se ha interesado v11 v12 v13 v14 Precio pk : probabilidad de que un ejemplo esté en la clase k: nk pk = ∑k nk Aprendizaje: árboles con nk = número de ejemplos en la clase k c 2010 DIT-ETSIT-UPM = 1 bit Entropía en el ejemplo Si hay dos clases, 0 ≤ H ≤ 1 UPM = 5 5 5 5 −( 10 · lg 10 ) − ( 10 · lg 10 ) Entropía inicial: H0 Autor Entropía media tras conocer el valor de Precio: Aprendizaje: árboles transp. 8 2 3 3 2 HP = 10 · 0 + 10 · (− 31 lg 31 − 32 lg 32 ) + 10 · (− 23 lg 23 − 31 lg 31 ) + 10 · 0 = 0,55 bits Entropía media tras conocer el valor de Volumen: c 2010 DIT-ETSIT-UPM Ganancia de información por Volumen: H0 − HV = 0,6 bits Ganancia de información por Precio: H0 − HP = 0,45 bits 3 4 3 HV = 10 · 0 + 10 · (− 21 lg 21 − 21 lg 12 ) + 10 · 0 = 0,4 bits UPM v(A1)=v1 N1 p = n /(n + n ) 1 1 1 2 p = n /(n + n ) 2 1 2 2 H(N0) = -(p log p + p log p ) 2 2 2 2 1 1 Valor informativo de un atributo n i2 Pr{v(A1) = vi}*H(Ni) = i [(n + n )/(n + n )]*H(Ni) i1 i2 1 2 transp. 9 vi p = n /(n + n i2) i1 i1 Ni i1 H(Ni ) = -(p log p + p log p ) i1 2 i1 i2 2 i2 p i2= n i2 /(n + n i2) i1 n de C 1 i1 de C 2 N0 n de C 1 1 n 2 de C 2 v2 N2 H(N0| A1) = i H(N0) − H(N0|A1) Aprendizaje: árboles 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 – Construcción del árbol (1) Valores Clases Alto, Bajo +, – Negro, Cast., Rubio Verdes, Oscuros c 2010 DIT-ETSIT-UPM Reducción de entropía = información ganada por A1 = UPM Atrib. talla pelo ojos Inicialmente: p+ = 3/8; p− = 5/8; H(N0) = −( 38 · lg2 83 + 58 · lg2 85 ) = 0,954 bits c 2010 DIT-ETSIT-UPM Aprendizaje: árboles transp. 10 Ejemplo de Quinlan (1983). Trivial, pero ilustra aplicaciones reales: descubrir criterio de selección, factores que influyen en comportamiento (violencia, hábitos de compra. . . ) UPM A talla ARO− ACV+ ANV− ARV+ ANO− (5/8) B Construcción del árbol (2) Valor informativo de «talla»: H(N0|A) = −( 53 · lg2 53 + 52 · lg2 25 ) = 0,971 Aprendizaje: árboles Construcción del árbol (3) Aprendizaje: árboles transp. 12 H(N0|pelo) = 38 · 0 + 18 · 0 + 84 · 1 = 0,5 H(N0|R) = −( 12 · lg2 12 + 21 · lg2 12 ) = 1 H(N0|C) = 0 H(N0|N) = −( 33 · lg2 33 + 30 · lg2 03 ) = 0 Valor informativo de «pelo»: BRV+ AROARV+ BRO- transp. 11 H(N0|B) = −( 31 · lg2 31 + 32 · lg2 23 ) = 0,918 BRV+ H(N0|talla) = 58 · 0,971 + 83 · 0,918 = 0,951 BNV− BRO+ (3/8) Ganancia de información por «talla»: c 2010 DIT-ETSIT-UPM pelo C AVC+ (1/8) R H(N0) − H(N0|talla) = 0,954 − 0,951 = 0,003 bits UPM N BNVANVANO(3/8) (4/8) Ganancia de información por «pelo»: c 2010 DIT-ETSIT-UPM H(N0) − H(N0|pelo) = 0,954 − 0,5 = 0,454 bits UPM V ojos O H(N0|ojos) = 58 · 0,971 + 83 · 0 = 0,607 H(N0|O) = 0 H(N0|V) = −( 52 · lg2 52 + 53 · lg2 35 ) = 0,971 Valor informativo de «ojos»: Construcción del árbol (4) AROANOBRO(3/8) Ganancia de información por «ojos»: - N pelo C + R Aprendizaje: árboles BRV+ AROARV+ BROH(N1)=1 Construcción del árbol (5) Aprendizaje: árboles transp. 14 transp. 13 H(N0) − H(N0|ojos) = 0,954 − 0,657 = 0,347 bits c 2010 DIT-ETSIT-UPM BRV+ ACV+ BNVANVARV+ (5/8) UPM c 2010 DIT-ETSIT-UPM Mejor atributo hasta ahora: pelo Árbol provisional: UPM N talla: ojos: + pelo C c 2010 DIT-ETSIT-UPM - Construcción del árbol (6) AROARV+ V BRV+ ARV+ talla ojos ojos B BRV+ BRO- O H(N|talla) = 1 Ganancia: 0 H(N|ojos) = 0 Ganancia: 1 Aprendizaje: árboles AROBRO- - O Aprendizaje: árboles transp. 15 transp. 16 Si (v(pelo) = «rubio») y (v(ojos) = «oscuros») entonces «–» Si (v(pelo) = «rubio») y (v(ojos) = «verdes») entonces «+» Si (v(pelo) = «castaño») entonces «+» Si (v(pelo) = «negro») entonces «–» Reglas: Construcción del árbol (7) + V R Árbol resultante: c 2010 DIT-ETSIT-UPM A Dado el valor de «pelo» quedan 4 ejemplos, 2 «+» y 2 «–» UPM UPM pk n de C 1 1 n de C 2 2 N2 v2 N n de C K K --- K vi Ni n i2 --- de C K n de C 1 i1 de C 2 p = n /(n + n + ... + n ) K 1 K 2 K --- p = n /(n + n + ... + n ) 1 1 1 2 K p = n /(n + n + ... + n ) 2 1 2 2 K k=1 H(N) = − ∑ (pk lg2 pk ); v(A)=v1 N1 iK n H(N) − H(N|A) Aprendizaje: árboles ∑ nik transp. 17 0 ≤ H(N) ≤ lg2K ID3: generalización para K clases nk ; = n1 + n2 + . . . + nK Partición por el atributo A con valores v1, v2, . . . : ik pik = ni1+ni2n+... +niK Hi = − ∑k (pik lg2 pik ) n n i=1 Valor medio de la entropía después de saber el valor de A: i=1 H(N|A) = Pr(v(A) = v ) · H = ( k ) · Hi i i ∑ ∑ ∑i ∑k nik c 2010 DIT-ETSIT-UPM Reducción media de la entropía = información ganada por A = UPM 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 – ¿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(N0|1) = H(N0|2) = ... = H(N0|8) = 0 Es decir, ¡H(N0|ID) = 0! Causa: con la ganancia se da preferencia a atributos con muchos valores posibles que conducen a nodos con pocos ejemplos. c 2010 DIT-ETSIT-UPM Aprendizaje: árboles transp. 18 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 UPM Entropía de un atributo n i2 p = n /(n + n ) 1 1 1 2 p = n /(n + n ) 2 1 2 2 Pr{v(A1) = vi}*H(Ni) = i H(N0) = -(p log p + p log p ) 2 2 2 2 1 1 [(n + n )/(n + n )]*H(Ni) i1 i2 1 2 vi p = n /(n + n ) i1 i1 i2 Ni i1 H(Ni ) = -(p log p + p log p ) p i2= n i2 /(n + n i2) i1 2 i1 i2 2 i2 i1 n de C 1 i1 de C 2 N0 n de C 1 1 n 2 de C 2 v2 N2 i Aprendizaje: árboles transp. 19 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 H(N0| A1) = c 2010 DIT-ETSIT-UPM donde: pi = ni/n, con ni = ni1 + ni2 y n = ∑i ni Entropía de A1 en N0: H(A1) = − ∑i (pi × lg2 pi ) UPM Ganancia ponderada, o tasa de ganancia pelo ojos transp. 20 H(N) − H(N|A) GP(A) = H(A) En el ejemplo, en N0 H(ID) = −( 81 · lg2 81 ) × 8 = 3 (8 ramas, 1 ejemplo por rama) H(talla) = H(ojos) = −( 85 · lg2 58 + 83 · lg2 83 ) = 0, 954 (dos ramas, 5 + 3 ejemplos) talla H(pelo) = −( 38 · lg2 38 + 81 · lg2 81 + 48 · lg2 84 ) = 1, 406 ID Aprendizaje: árboles Ganancia, G 0,954 0,003 0,454 0,347 Entropía, H 3,0 0,954 1,406 0,954 GP = G/H 0,318 0,003 0,323 0,364 c 2010 DIT-ETSIT-UPM Y el mejor atributo es... UPM talla pelo pelo ojos N O ojos V − R + pelo C + Aprendizaje: árboles Aprendizaje: árboles transp. 22 transp. 21 Árbol resultante en el ejemplo con la ganancia ponderada ID talla − Ganancia, G 0,954 0,003 0,454 0,347 Entropía, H 3 0,954 1,406 0,954 GP = G/H 0,318 0,003 0,323 0,364 ID c 2010 DIT-ETSIT-UPM c 2010 DIT-ETSIT-UPM Muchas implementadas en C4.5 (Quinlan, 1993) y derivados Costes de los atributos Ejemplos incompletos Atributos con valores continuos Datos con «ruido» evitando sobreajuste Mejoras sobre ID3 Ganancia, G 0,971 0,020 0,971 Entropía, H 2,322 0,951 1,522 GP = G/H 0,418 0,0021 0,638 UPM UPM Sobreajuste (overfitting) (1) Aprendizaje: árboles Sobreajuste (overfitting) (2) transp. 23 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 ) c 2010 DIT-ETSIT-UPM Causa: Unos pocos ejemplos con ruido hacen crecer artificialmente al árbol UPM Heurístico: poda temprana (durante la construcción del árbol) tardía (después de construido) c 2010 DIT-ETSIT-UPM Aprendizaje: árboles transp. 24 medidas de la complejidad de la enumeración de los ejemplos y de la descripción del árbol (Minimum Description Length) pruebas estadísticas para estimar si la expansión (o la poda) de un nodo puede mejorar la precisión sobre E un segundo conjunto de entrenamiento (conjunto de validación) Criterios para la poda: UPM Atributos con valores continuos v(A) 40 - 48 + 60 + 72 + 80 - 90 85 54 puntos de corte Aprendizaje: árboles {v(A) > 54, v(A) > 85} c 2010 DIT-ETSIT-UPM v(A) Dependiente del conocimiento de base del dominio Por ejemplo: Edad {niño, joven, adulto, viejo} Temperatura {baja, normal, alta} Automática. Por ejemplo: Discretización UPM Ejemplos incompletos valor = «desconocido» el más frecuente entre los ejemplos que sí lo tienen (atributos nominales) Aprendizaje: árboles un valor medio, ponderado o no (atributos numéricos) c 2010 DIT-ETSIT-UPM transp. 25 transp. 26 Estimación del valor de un atributo en un ejemplo en el que falta: UPM Costes de medida de atributos 1. Definición de una función de coste, C(A) Aprendizaje: árboles ITI (Incremental Tree Inducer) http://www-lrn.s.umass.edu/iti/index.html Enlaces a programas comerciales y libres en: Aprendizaje: árboles http://www.kdnuggets.om/software/ lassifiation-deision-tree.html c 2010 DIT-ETSIT-UPM transp. 27 transp. 28 C4.5: http://www.rulequest.om/Personal/ Integrado (con distintas variantes) en muchas herramientas de minería de datos Software para inducción de árboles c 2010 DIT-ETSIT-UPM (Núñez, 1991: diagnóstico médico) 2G(A) −1 (C(A)+1)α (Tan, 1993: robótica) G2(A) C(A) 2. Ponderación de la función Ganancia (muy dependiente del dominio): UPM UPM