You are on page 1of 36

´ Razonamiento Automatico

Curso 2000–2001

Tema 12: Arboles de decisi´n o

Jos´ A. Alonso Jim´nez e e Miguel A. Guti´rrez Naranjo e

Dpto. de Ciencias de la Computaci´n e Inteligencia Artificial o

Universidad de Sevilla

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.1

¿Qu´ es el Aprendizaje mediante ´rboles de decisi´n? e a o

• El aprendizaje mediante ´rboles de decisi´n es un m´todo de aproxia o e maci´n de una funci´n objetivo de valores discretos en el cual la funci´n o o o objetivo es representada mediante un ´rbol de decisi´n. a o • Los ´rboles aprendidos tambi´n pueden representarse como un conjunto a e de reglas Si–entonces

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.2

Un ejemplo
Cielo Temperatura Humedad Viento Agua Forecast Hacer Deporte Soleado Templada Alta D´bil e Fr´ ıa Sigue igual No Soleado Templada Normal D´bil e Fr´ ıa Sigue igual S´ ı Nublado Templada Normal D´bil e Fr´ ıa Sigue igual S´ ı Lluvioso Templada Normal Fuerte Templada Cambio No Lluvioso Templada Normal D´bil e Fr´ ıa Cambio S´ ı

• ¿Cu´ndo hacemos deporte? a • ¿Podemos definir el concepto Hacer Deporte?

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.3

Un ejemplo de ´rbol de decisi´n a o
Cielo

Soleado Humedad

Nublado Si

Lluvioso Viento

Alta
No

Normal Si

Fuerte No

Debil Si

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.4

El problema de la representaci´n o
El ´rbol anterior corresponde a la hip´tesis: a o (Cielo = Soleado ∧ Humedad = N ormal) ∨ (Cielo = N ublado) ∨ (Cielo = Lluvioso ∧ V iento = Debil) Representaci´n: o • Cada nodo que no sea una hoja representa un atributo. • Las aristas que partan del nodo etiquetado con el atributo A est´n etiquetadas con cada a uno de los posibles valores del atributo A. • Cada hoja corresponde a un valor de la clasificaci´n o

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.5

Cuestiones sobre ´rboles de decisi´n a o
x

¿Cu´ndo usar ´rboles de decisi´n? a a o
u u u u

Podemos describir los ejemplos en t´rminos de pares atributo–valor e La funci´n objetivo toma valores discretos o Posibilidad de ruido en el conjunto de entrenamiento Pueden no conocerse los valores de algunos atributos en los ejemplos del conjunto de entrenamiento

x

Ejemplos:
u u u

Diagn´stico m´dico o e An´lisis de riesgo en la concesi´n de cr´ditos a o e Elaboraci´n de horarios o

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.6

Cuestiones sobre ´rboles de decisi´n a o
x

¿Cu´l es el ´rbol de decisi´n correcto? a a o
u u u

Navaja de Occam El mundo es inherentemente simple El ´rbol de decisi´n m´s peque˜ o consistente con la muestra es el que tiene m´s a o a n a probabilidades de identificar objetos desconocidos de manera correcta Menor profundidad Menor n´ mero de nodos u

u u x

¿C´mo se puede construir el ´rbol de decisi´n m´s peque˜ o? o a o a n
u

B´ squeda en escalada u

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.7

Algoritmo b´sico (I) a

´ ´ • Arbol inicial: Arbol con un unico nodo, sin etiquetar, al que asignamos ´ como conjunto de ejemplos todo el conjunto de entrenamiento. • Bucle principal: – Consideramos el primer nodo, N , sin etiquetar ∗ Si los ejemplos asignados N tienen todos la misma clasificaci´n, o etiquetamos N con esa clasificaci´n. o ∗ En otro caso ...

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.8

Algoritmo b´sico (II) a · Etiquetamos N con el mejor atributo A seg´n el conjunto de u ejemplos asignado. · Para cada valor de A creamos una nueva arista descendente en el nodo N , y al final de cada una de esas nuevas aristas creamos un nuevo nodo sin etiquetar, N1, . . . , Nk . · Separamos los ejemplos asignados al nodo N seg´n el valor que u tomen para el atributo A y creamos nuevos conjuntos de ejemplos para N1, . . . , Nk . • Hasta que todos los nodos est´s etiquetados e ¿Qu´ atributo clasifica mejor? e

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.9

Entrop´ (Definici´n) ıa o
• Definici´n: Sea P = {p1, p2, . . . , pn} una distribuci´n o o de probabilidad. Llamamos entrop´ b-aria de la disıa tribuci´n P a o
i=n

Hb(p1, p2, . . . , pn) = −
i=1

pi logb pi

• La funci´n de entrop´ o ıa H2(p, 1 − p) = p log2 1 1 + (1 − p) log2 p 1−p

es muy com´n y nos referimos a ella como la funci´n de u o entrop´ y se denota por H(p). Su gr´fica es ıa a
1.0

Entropy(S)

0.5

0.0

0.5 p +

1.0

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.10

Entrop´ ıa • D es un conjunto de entrenamiento • P y N son, respectivamente, la cantidad de ejemplos positivos y negativos en D • T es el n´mero total de ejemplos de D u • La entrop´ de esta distribuci´n es: ıa o
u

F´rmula: I(P, N ) = H2(P/T, N/T ) = o
9 9 Ejemplo: I(9, 9) = − 18 log2 18 − 9 18

0, − P log2 P − T T

N T

log2 N , T

si N ∗ P = 0; si N ∗ P = 0.

u

9 log2 18 = 1

(El t´rmino entrop´ fue usado por primera vez por Clausius en 1864 e introducido en la teor´ de la e ıa ıa informaci´n por Shannon en 1948) o

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.11

Otro ejemplo
D´ ıa D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 Cielo Temperatura Humedad Viento Jugar tenis Soleado Alta Alta D´bil e No Soleado Alta Alta Fuerte No Lluvioso Alta Alta D´bil e S´ ı Lluvioso Media Alta D´bil e S´ ı Lluvioso Fr´ ıa Normal D´bil e S´ ı Lluvioso Fr´ ıa Normal Fuerte No Lluvioso Fr´ ıa Normal Fuerte S´ ı Soleado Media Alta D´bil e No Soleado Fr´ ıa Normal D´bil e S´ ı Lluvioso Media Normal D´bil e S´ ı Soleado Media Normal Fuerte S´ ı Lluvioso Media Alta Fuerte S´ ı Lluvioso Alta Normal D´bil e S´ ı Lluvioso Media Alta Fuerte No

Entropia([9+,5-])= -(9/14)log2(9/14)-(5/14)log2(5/14)=0’940

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.12

Ganancia de informaci´n o Ganancia(D,A)= Estimaci´n de la reducci´n de la entrop´ en el conjunto o o ıa de entrenamiento D si tomamos el atributo A y clasificamos seg´n sus valores u Ganancia(S, A) ≡ Entropia(S) −
v∈V alores(A)

|Sv | Entropia(Sv ) |S|

donde • Valores(A) es el conjunto de valores del atributo A • Sv es el subconjunto de S formado por aquellas instancias que en el atributo A toman el valor v

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.13

Otro ejemplo Supongamos que S es un conjunto de entrenamiento con 14 ejemplos • 9 ejemplos positivos y 5 negativos ([9+,5-]) • Unos de los atributos, V iento, puede tomar los valores D´bil y Fuerte e • La distribuci´n de ejemplos positivos y negativos seg´n los valores de o u V iento son Positivos Negativos D´bil e 6 2 Fuerte 3 3

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.14

Otro ejemplo La Ganancia de informaci´n que obtenemos si clasificamos los 14 ejemplos o seg´n el atributo V iento es: u Ganancia(S,A) = = = = Entropia(S) −
|Sv | v∈V alores(A) |S| Entropia(Sv )

8 6 Entropia(S) − 14 Entropia(SDebil ) − 14 Entropia(SF uerte) 6 8 0 940 − 14 0 811 − 14 1 00

0.048

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.15

Selecci´n del mejor atributo (I) o
Which attribute is the best classifier?
S: [9+,5-] E =0.940 Humidity High Normal Weak S: [9+,5-] E =0.940 Wind Strong

[3+,4-] E =0.985 Gain (S, Humidity ) = .940 - (7/14).985 - (7/14).592 = .151

[6+,1-] E =0.592

[6+,2-] E =0.811 Gain (S, Wind )

[3+,3-] E =1.00

= .940 - (8/14).811 - (6/14)1.0 = .048

Humedad proporciona mayor ganacia de informaci´n que Viento o

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.16

Selecci´n del mejor atributo (II) o Consideremos el ejemplo anterior con 14 ejemplos Ganancia(S,Cielo) = 0’246 Ganancia(S,Humedad) = 0’151 Ganancia(S,Viento) = 0’048 Ganancia(S,Temperatura) = 0’029 • El atributo con el que tenemos mayor Ganancia de informaci´n es Cielo o • Luego, seleccionamos Cielo como atributo de decisi´n para el nodo ra´ o ız • Para cada uno de sus posibles valores (Soleado, Lluvioso, Lluvioso) creamos una rama • Clasificamos los ejemplos seg´n los valores de u Cielo • En las ramas en las que los ejemplos no est´n e perfectamente clasificados, iteramos el proceso

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.17

Selecci´n del mejor atributo (III) o Tras el primer paso, obtenemos un ´rbol de decisi´n a o parcial
{D1, D2, ..., D14} [9+,5−] Outlook

Sunny

Overcast

Rain

{D1,D2,D8,D9,D11} [2+,3−]

{D3,D7,D12,D13} [4+,0−] Yes

{D4,D5,D6,D10,D14} [3+,2−]

?

?

Which attribute should be tested here?
Ssunny = {D1,D2,D8,D9,D11} Gain (Ssunny , Humidity) = .970 − (3/5) 0.0 − (2/5) 0.0 = .970 Gain (Ssunny , Temperature) = .970 − (2/5) 0.0 − (2/5) 1.0 − (1/5) 0.0 = .570 Gain (Ssunny , Wind) = .970 − (2/5) 1.0 − (3/5) .918 = .019

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.18

Espacio de hip´tesis o

• El aprendizaje mediante ´rboles de decisi´n es un m´todo de aproxia o e maci´n de una funci´n objetivo de valores discretos en el cual la funci´n o o o objetivo es representada mediante un ´rbol de decisi´n. a o • Podemos pensar este proceso como un proceso de b´squeda de un ´rbol u a que clasifique correctamente nuestros ejemplos. • Espacio de hip´tesis: Todos los posibles ´rboles de decisi´n. o a o • M´todo: Escalada (hill-climbing), empezando por el ´rbol vac´ e a ıo. • Funci´n de evaluaci´n que gu´ la b´squeda: Ganancia de informaci´n o o ıa u o

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.19

Comentarios (I)

• El espacio de hip´tesis es completo: Cualquier funci´n finita que tome o o valores discretos puede ser representada como un ´rbol de decisi´n. a o • En cada elecci´n consideramos una unica hip´tesis, a diferencia del alo ´ o ´ goritmo de Eliminacion de Candidatos, que consider´bamos sia mult´neamente todas las hip´tesis consistentes con los ejemplos. a o

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.20

Comentarios (II)

• No permite retroceso, por lo que podemos obtener ´ptimos locales en o lugar de ´ptimos globales o • Considera en cada paso gran cantidad de ejemplos, en contraste con otros ´ m´todos, por ejemplo Eliminacion de candidatos que consideran e los ejemplos uno a uno. Esto supone mayor robustez frente al ruido.

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.21

Sesgo de restricci´n y sesgo preferencial (I) o Consideremos la b´squeda en el espacio de hip´tesis en el algoritmo de u o ´ ´rboles de decisi´n y el algoritmo de Eliminacion de Candidatos a o • ID3 busca de manera incompleta en un espacio de b´squeda completo. u El sesgo es consecuencia unicamente del m´todo de b´squeda. El espacio ´ e u de hip´tesis no introduce ning´n sesgo. Llamamos a este tipo de sesgo o u preferencial, ya que se debe a la preferencia de unas hip´tesis sobre otras. o

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.22

Sesgo de restricci´n y sesgo preferencial (II) o

´ • El algoritmo de Eliminacion de Candidatos busca en un espacio de b´squeda incompleto de manera completa (i.e. devuelve todas las u hip´tesis del espacio consistentes con el conjunto de entrenamiento). En o este caso el sesgo depende unicamente de la potencia expresiva en la rep´ resentaci´n de las hip´tesis. Llamamos a este sesgo sesgo de restricci´n o o o o sesgo del lenguaje.

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.23

Sistemas TDIDP
x

Los sistemas basados en ´rboles de decisi´n forman una familia llamada a o TDIDT (Top–Down Induction of Decision Tree) Representantes de TDIDT:
u u

x

ID3 [Quinlan, 1986] C4.5 [Quinlan, 93]

x

Quinlan, J. R. C4.5: Programs for Machine Learning (Morgan Kaufmann, 1993)

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.24

Otros temas de estudio (I) • Sobreajuste (overfitting) – Definici´n: Dado un espacio de hip´tesis H, o o una hip´tesis h ∈ H se dice que sobreao justa un conjunto de entrenamiento C si existe alguna hip´tesis alternativa h ∈ H tal o que h clasifica mejor que h los elementos del conjunto de entrenamiento, pero h clasifica mejor que h el conjunto completo de posibles instancias. – Exceso de ruido – Conjunto de entrenamiento demasiado peque˜o n • Poda (prunning) – Definici´n: Podar un nodo de un ´rbol de o a decisi´n consiste en eliminar un sub´rbol anio a dado en ese nodo transform´ndolo en una a hoja y asign´ndole la clasificaci´n m´s com´n a o a u de los ejemplos de entrenamiento considerados en ese nodo

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.25

Otros temas de estudio (II) • Atributos de valores continuos • Medidas alternativas en la selecci´n de o atributos • Atributos con valores perdidos • Atributos con pesos diferentes

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.26

Ejemplo de datos
Ejemplo e1 e2 e3 e4 e5 e6 e7 e8 e9 e10 e11 e12 e13 e14 e15 e16 e17 e18 Acci´n o saltar leer saltar saltar leer saltar saltar leer saltar saltar saltar saltar leer leer leer leer leer leer Autor conocido desconocido desconocido conocido conocido conocido desconocido desconocido conocido conocido desconocido conocido conocido conocido conocido conocido conocido desconocido Tema nuevo nuevo viejo viejo nuevo viejo viejo nuevo viejo nuevo viejo nuevo viejo nuevo nuevo viejo nuevo nuevo Longitud largo corto largo largo corto largo corto corto largo largo corto largo corto corto corto corto corto corto Sitio casa trabajo trabajo casa casa trabajo trabajo trabajo casa trabajo casa trabajo casa trabajo casa trabajo casa trabajo

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.27

Arbol de decisi´n o
longitud largo saltar nuevo leer conocido leer corto trama viejo autor desconocido saltar

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.28

B´ squeda del ´rbol de decisi´n u a o
x

Informaci´n tras la divisi´n por un Atributo: o o 2∗I2 I = N 1∗I1+N 2 , donde N 1+N • N1 = n´ mero de ejemplos en la clase 1 u • N2 = n´ mero de ejemplos en la clase 2 u • I1 = cantidad de informaci´n en los ejemplos de la clase 1 o • I2 = cantidad de informaci´n en los ejemplos de la clase 2 o

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.29

Algoritmo ID3
x

Sesi´n o
?- [’aprende_ad.pl’,’aprende_ad_e1.pl’]. Yes ?- aprende_ad(accion, [e1,e2,e3,e4,e5,e6,e7,e8,e9, e10,e11,e12,e13,e14,e15,e16,e17,e18], [autor,tema,longitud,sitio], AD). AD = si(longitud=largo, saltar, si(tema=nuevo, leer, si(autor=desconocido, saltar, leer))) Yes

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.30

Algoritmo ID3
x

Representaci´n del problema aprende ad e1.pl o
u

val(Objeto,Atributo,Valor) se verifica si el valor del Atributo del Objeto es Valor

val(e1,accion,saltar). val(e1,autor,conocido). val(e1,tema,nuevo). val(e1,longitud,largo). val(e1,sitio,casa ). .......................... val(e18,accion,leer). val(e18,autor,desconocido). val(e18,tema,nuevo). val(e18,longitud,corto). val(e18,sitio,trabajo).

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.31

Algoritmo ID3
x

Algoritmo de aprendizaje de ´rboles de decisi´n a o
u

aprende ad(+Objetivo,+Ejemplos,+Atributos,-AD) se verifica si AD es el ´rbol de dea cisi´n inducido para el Objetivo a partir de la lista de Ejemplos y Atributos o

aprende_ad(Objetivo, Ejemplos, _ , Val) :coinciden_todos_ejemplos(Objetivo, Ejemplos, Val). aprende_ad(Objetivo, Ejemplos, Atributos, si(Atr=ValPos,APos,ANeg)) :not(coinciden_todos_ejemplos(Objetivo, Ejemplos, _)), selecciona_division(Objetivo, Ejemplos, Atributos, Atr, Resto_Atr), divide(Ejemplos, Atr, ValPos, Positivos, Negativos), aprende_ad(Objetivo, Positivos, Resto_Atr, APos), aprende_ad(Objetivo, Negativos, Resto_Atr, ANeg).

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.32

Algoritmo ID3
x

Selecci´n del mejor atributo para dividir o
u

selecciona division(+Objetivo,+Ejemplos,+Atributos, -Atrib,-Restantes atrib) se verifica si Atributo es el mejor elemento de la lista de Atributos para determinar el Objetivo a partir de los Ejemplos (es decir, la informaci´n resultante del Objetivo o en los Ejemplos usando como divisi´n el Atributo es m´ o ınima), y Restantes atributos es la lista de los restantes Atributos. Falla si para ning´ n atributo se gana en u informaci´n. o

selecciona_division(Objetivo, Ejemplos, [A|R], Atributo, Resto_Atr) :informacion_division(Objetivo,Ejemplos,A,I), selecciona_max_ganancia_informacion(Objetivo,Ejemplos,R,A,I, Atributo,[],Resto_Atr).

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.33

Algoritmo ID3
u

informacion(+Objetivo,+Ejemplos,-I) se verifica si I es la cantidad de informaci´n o en los Ejemplos respecto del Objetivo; es decir, 0, si N ∗ P = 0; I= P P N N − T log2 T − T log2 T , si N ∗ P = 0.

informacion(Objetivo,Ejemplos,I) :cuenta(Objetivo,_,Ejemplos,NP,NN), ( (NP=0 ; NN=0) -> I=0 ; NT is NP + NN, I is - NP/NT * log2(NP/NT) - NN/NT * log2(NN/NT)).

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.34

Algoritmo ID3
u

selecciona max ganancia informacion(+Objetivo, +Ejemplos, +Atributos, +Mejor atributo actual, +Mejor info actual, -Atributo, +Atributos analizados, -Resto atributos) se verifica si Atributo es el elemento de Atributos tal la informaci´n resultante del Objetivo en los Ejemplos usando como divisi´n el Atributo es o o m´ ınima

selecciona_max_ganancia_informacion(_,_,[],MejorA,_, MejorA, A_analizados, A_analizados). selecciona_max_ganancia_informacion(Objetivo, Ejs, [A|R], MejorA, MejorI, Atributo, A_analizados, Resto_Atr) :informacion_division(Objetivo,Ejs,A,Informacion), ( Informacion > MejorI -> selecciona_max_ganancia_informacion( Objetivo,Ejs,R,MejorA,MejorI,Atributo,[A|A_analizados],Resto_Atr) ; selecciona_max_ganancia_informacion( Objetivo,Ejs,R,A,Informacion,Atributo,[MejorA|A_analizados],Resto_Atr) ).

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.35

Bibliograf´ ıa • Mitchell, T. M. Machine Learning – Texto: McGraw–Hill, 1997. Cap´ ıtulo III. – Web: http://www.cs.cmu.edu/~tom/mlbook.html • Poole D., et. al Computational Intelligence. A Logical Approach Oxford University Press, 1998.

RA 2000–01

Cc Ia

Arboles de decisi´n o

12.36