Вы находитесь на странице: 1из 19

Aprendizaje de rboles de decisin

Jos M. Sempere Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia

Aprendizaje de rboles de decisin


1. 2. 3. 4. 5. Introduccin. Definicin y algoritmos de aprendizaje. Conceptos bsicos de teora de la informacin El algoritmo ID3 Extensiones hacia el algoritmo C4.5 Una versin incremental del ID3: El algoritmo ID5R

Bibliografa
T. Mitchell. Mitchell. Machine Learning. Learning. Ed. Ed. McGrawMcGraw-Hill. 1997. B. Sierra. Aprendizaje Auomtico. Auomtico. Ed. Ed. PearsonPearson- Prentice Hall. 2006. J.R. J.R. Quinlan. Quinlan. C 4.5: programs for machine learning. learning. Ed. Ed. Morgan Kaufmann. Kaufmann. 1993.

Un rbol de decisin es una representacin de una funcin multievaluada f : A1 A2 ... An B A1


oprel(A1.v,v1) oprel(A1.v,vj)

A2

An
oprel(An.v,v1) oprel(An.v,vh)

oprel(Aj.v,vk) = {Aj.v = vk, Aj.v vk Aj.v vk Aj.v vk, ... }

B.v1

B.v2

Ejemplo: rbol de decisin para Administrar frmaco F ?


Presin arterial ?

Alta
Azcar en sangre ?

Media
ndice de colesterol ?

Baja

Alto
Alergia a antibiticos ?

Bajo

Alto

Bajo

No

S
Otras alergias ?

No

No

No

Los rboles de decisin son adecuados cuando ... Las instancias del concepto son representadas por pares atributo-valor La funcin objetivo tiene valores de salida discretos Las descripciones del objeto son disyuntivas El conjunto de aprendizaje tiene errores El conjunto de aprendizaje es incompleto

Algunos algoritmos para el aprendizaje de rboles de decisin


Hoveland y Hunt (1950): Concept Learning Systems (CLS) Breiman, Friendman, Olshen y Stone (1984): Mtodo CART J.R. Quinlan (1973, 1986): Mtodo ID3 J.R. Quinlan (1994): Mtodo C4.5 G.V. Kass (1980): Mtodo CHAID Otras mejoras del C4.5: J4.8, C5.0 J. Schlimmer y D. Fisher (1986): ID4 e ID4R P. Utgoff (1990): ID5 e ID5R

Un algoritmo gen genrico para el aprendizaje de rboles de decisi decisin


Entrada: Un conjunto de ejemplos de aprendizaje (tuplas supervisadas) E Salida: Un rbol de decisin T Mtodo: Crear una raiz para el rbol. si todos los ejemplos pertenecen a la clase Cj entonces return (raiz,Cj) sino Seleccionar un atributo X con valores x1, x2, , xM Particionar E de acuerdo con los valores del atributo E1, E2, , EM Construir rboles de decisin para cada particin T1, T2, , TM return (raiz(T1, T2, , TM))

raiz

X = x1 X = x2

X = xM T2 TM

finMtodo

T1

Conceptos bsicos de la teora de la informacin (I)


Teora de la probabilidad

Variables independientes p(x,y)=p(x)p(y) Probabilidad condicional y conjunta p(x,y)=p(x|y)p(y) p(x,y)=p(y|x)p(x) Teorema de Bayes ( regla de Bayes )

p( x | y ) =

p( y | x) p( x) p( y)

Conceptos bsicos de la teora de la informacin (II)


Entropa
H ( X ) = p ( X = xi ) log 2 p ( X = xi )
i =1 n

H(x)

H ( X | y ) = p ( x | y ) log 2 p ( x | y )
x

0.5

p(x)

H ( X | Y ) = p ( y ) p ( x | y ) log 2 p ( x | y )
y x

Teorema.

(1) H(X,Y) H(X) + H(Y) (2) H(X,Y) = H(X) + H(Y) sii X e Y son independientes

Teorema. H(X,Y) = H(Y) + H(X |Y) = H(X) + H(Y | X) Corolario (1) H(X | Y) H(X) (2) H(X | Y) = H(X) sii X e Y son independientes.

El algoritmo de aprendizaje de rboles de decisin ID3


J.R Quinlan (1986) Bsqueda voraz top-down Basado en un criterio estadstico Seleccin de atributos mediante el Principio de ganancia de informacin

S: conjunto de ejemplos clasificados en C clases A: Atributo de los ejemplos Sv: Ejemplos que en el atributo A tienen el valor v
Ganancia( S , A) Entropa ( S )

vValores ( A )

|S |
V

|S|

Entropa ( S v)

Algoritmo ID3(Ejemplos, Atributo_salida, Atributos)


Ejemplos: Ejemplos de aprendizaje. Atributo_salida: Atributo a predecir por el rbol. Atributos: Lista de atributos a comprobar por el rbol.
(1) (2) (3) (4) Crear una raiz para el rbol. Si todos los ejemplos son positivos Return(raiz,+) Si todos los ejemplos son negativos Return(raiz,-) Si Atributos= Return(raiz,l) ( l es el mximo valor comn de Atributo_salida en Ejemplos ) Si ninguna de las anteriores condiciones se cumple Begin (1) Seleccionar el atributo A con mayor Ganancia(Ejemplos,A) (2) El atributo de decisin para raiz es A (3) Para cada posible valor vi de A (3.1) Aadir una rama a raiz con el test A=vi (3.2) Ejemplos_vi es el subconjunto de Ejemplos con valor vi para A (3.3) Si Ejemplos_vi= entonces aadir un nodo (n,l) a partir de la rama creada. (l es el mximo valor comn de Atributo_salida en Ejemplos). sino aadir a la rama creada el subrbol ID3(Ejemplos_vi, Atributo_salida, Atributos-{A}) End Return(raiz)

Un ejemplo: Administrar frmaco F?


Paciente 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Presin arterial Alta Alta Baja Media Media Baja Alta Alta Alta Baja Media Alta Baja Baja Azcar en sangre Alto Alto Alto Alto Bajo Bajo Bajo Bajo Alto Bajo Bajo Bajo Alto Alto ndice de colesterol Alto Alto Bajo Alto Alto Alto Alto Bajo Bajo Alto Bajo Alto Alto Bajo Alergia a antibiticos No S No No S S S No S S S S S No Otras alergias No No No S S S No S S S S S S No Administrar frmaco F S S S No No S S S No S S No S S

Clculo de entropas y ganancia de la informacin respecto del atributo Presi Presin arterial (aplicando Ln)
Entropa ( S ) = p i log 2 p i = i =1 c

10 10 4 4 log 2 - log 2 = 0 .863121 14 14 14 14

Entropa ( S PA = Alta ) = -

4 4 2 2 log 2 - log 2 = 0.636514 6 6 6 6

5 5 Entropa ( S PA = Baja ) = - log 2 = 0 5 5


2 2 1 1 log 2 - log 2 = 0 .636514 3 3 3 3

Entropa ( S PA = Media ) = -

Ganancia ( S , PA ) = 0.863121

6 5 3 0 .636514 0 0.636514 = 0 .453939 14 14 14

Clculo de entropas y ganancia de la informacin respecto del atributo Az Azcar en sangre


Entropa ( S ) = pi log 2 pi = i =1 c

4 10 4 10 = 0.863121 - log 2 log 2 14 14 14 14

5 5 2 2 Entropa ( S AS = Alto ) = - log 2 - log 2 = 0.59827 7 7 7 7

5 5 2 2 Entropa ( S AS = Bajo ) = - log 2 - log 2 = 0.59827 7 7 7 7

Ganancia ( S , AS ) = 0.863121

7 7 0.59827 0.59827 = 0.264857 14 14

Clculo de entropas y ganancia de la informacin respecto del atributo ndice de colesterol


Entropa ( S ) = p i log 2 p i = i =1 c

10 10 4 4 log 2 - log 2 = 0.863121 14 14 14 14

3 6 3 6 Entropa ( S IC = Alto ) = - log 2 - log 2 = 0.636514 9 9 9 9 1 4 1 4 Entropa ( S IC = Bajo ) = - log 2 - log 2 = 0.500402 5 5 5 5

Ganancia ( S , IC ) = 0.863121

5 9 0.636514 0.500402 = 0.275224 14 14

Clculo de entropas y ganancia de la informacin respecto del atributo Alergia a antibi antibiticos

Entropa ( S ) = pi log 2 pi = i =1

10 10 4 4 log 2 - log 2 = 0.863121 14 14 14 14

6 6 3 3 Entropa ( S AA= SI ) = - log 2 - log 2 = 0.636514 9 9 9 9

4 4 1 1 Entropa ( S AA= NO ) = - log 2 - log 2 = 0.500402 5 5 5 5

Ganancia ( S , AA) = 0.863121

9 5 0.636514 0.500402 = 0.275224 14 14

Clculo de entropas y ganancia de la informacin respecto del atributo Otras alergias

Entropa ( S ) = p i log 2 p i = i =1

4 10 10 4 log 2 - log 2 = 0.863121 14 14 14 14

5 5 4 4 Entropa ( S OA = SI ) = - log 2 - log 2 = 0.686962 9 9 9 9 5 5 Entropa ( S OA = NO ) = - log 2 = 0 5 5

Ganancia ( S , OA ) = 0.863121

9 5 0.686962 0 = 0.421509 14 14

Seleccin del mejor atributo que explica las decisiones

Ganancia(S,PA) = 0.453939 Ganancia(S,AS) = 0.264857 Ganancia(S,IC) = 0.275224 Ganancia(S,AA) = 0.275224 Ganancia(S,OA) = 0.421509

Presin arterial ?

Alta

Media

Baja

Paciente 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Presin arterial Alta Alta Baja Media Media Baja Alta Alta Alta Baja Media Alta Baja Baja

Azcar en sangre Alto Alto Alto Alto Bajo Bajo Bajo Bajo Alto Bajo Bajo Bajo Alto Alto

ndice de colesterol Alto Alto Bajo Alto Alto Alto Alto Bajo Bajo Alto Bajo Alto Alto Bajo

Alergia a antibiticos No S No No S S S No S S S S S No

Otras alergias No No No S S S No S S S S S S No

Administrar frmaco F S S S No No S S S No S S No S S

Tabla de datos para calcular el subrbol de PA=Alta

Paciente 1 2 7 8 9 12

Azcar en sangre Alto Alto Bajo Bajo Alto Bajo

ndice de colesterol Alto Alto Alto Bajo Bajo Alto

Alergia a antibiticos No S S No S S

Otras alergias No No No S S S

Administrar frmaco F S S S S No No

Caractersticas del ID3 Espacio de hiptesis completo Hiptesis nica en cada momento de tiempo No se realiza backtracking Bsqueda no incremental Principio de la navaja de Occam (MDL) Saturacin sobre los datos (overfitting)

Hacia el algoritmo de aprendizaje de rboles de decisin C4.5


El problema de la saturacin (overfitting) Dado un espacio de hiptesis H, una hiptesis h H diremos que satura un conjunto de aprendizaje si existe otra hiptesis h tal que h tiene menor error que h sobre el conjunto de aprendizaje, pero h tiene menor error que h sobre la distribucin total de instancias de aprendizaje. Posible solucin (C4.5) Utilizad un conjunto de aprendizaje A y un conjunto de validacin V. 1. Inferir el rbol con el conjunto A 2. Establecer todas las posibles podas del rbol (convirtiendo los caminos desde la raz en reglas de decisin y eliminando precondiciones) 3. Para cada poda medir el error respecto del conjunto V 4. Ordenad los mejores resultados y aplicadlos en la fase de test.
Si (PA=Media) (IC=alto) entonces NO administrar F Si (PA=Media) entonces NO administrar F Si (IC=alto) entonces NO administrar F

Hacia el algoritmo de aprendizaje de rboles de decisin C4.5


Evaluacin de atributos continuos Cmo incorporar atributos continuos en las fases de aprendizaje y de test: Dada una variable x de carcter continuo, estableced los intervalos adecuados en sus valores para proporcionar variables discretas
Temperatura

10

20

30

40

50

T c

T> c

Problema: Cmo seleccionar el (los) valor(es) de c ? Posible solucin: Seleccionad aquellos valores que mayor ganancia de informacin proporcionen

Hacia el algoritmo de aprendizaje de rboles de decisin C4.5


Incorporacin de otras medidas para la seleccin de atributos Problema: La medida Ganancia favorece aquellas variables con mayor nmero de posibles valores Posible solucin Dados S (un conjunto de ejemplos de aprendizaje) y A (un atributo de los ejemplos que puede tomar c posibles valores) definimos

SplitInformation( S , A)

| Si | |S | log 2 i | S | |S| i =1

SplitInformation(S,A) denota la entropa de S con respecto a los valores de A

RatiodeGanancia( S , A)

Ganancia( S , A) SplitInformation( S , A)

El RatiodeGanacia(S,A) favorece aquellos atributos que, en igualdad de Ganacia, separen los datos en menos clases.

Hacia el algoritmo de aprendizaje de rboles de decisin C4.5


Manejo de ejemplos incompletos (atributos no evaluados) Problema: Dado un conjunto de ejemplos qu hacer cuando algunos atributos no tienen valor ? Posibles soluciones (1) Estimar el valor desconocido como el valor mayoritario que aparece en el el resto de ejemplos (2) Asignar a cada posible valor una probabilidad (frecuencia) de acuerdo con el resto de ejemplos. A continuacin repartir el ejemplo en cada uno de sus valores de acuerdo con la probabilidad y hacer el clculo de la Ganancia En el caso de la clasificacin, los casos con valores desconocidos se clasifican de acuerdo con la mayor probabilidad que proporcione el rbol.

Hacia el algoritmo de aprendizaje de rboles de decisin C4.5


Introduciendo costes en los atributos Problema: Todos los atributos son igual de valiosos al hacer una clasificacin ? Posible solucin Incorporar el coste de evaluar cada atributo a la hora de estimar el mejor de todos ellos. Algunas medidas pueden ser las siguientes

Ganancia 2 ( S , A) Coste( A)

2Ganancia ( S , A) 1 (Coste( A) + 1) w
w es una constante entre 0 y 1 que evala la importancia del Coste frente a la Ganancia

Una versin incremental del algoritmo ID3: ID5R


(para versiones dicotmicas en la decisin)
Nueva informacin en los nodos de decisin Sea Sea Sea Sea A el conjunto de atributos presentes en los ejemplos. ai el i-simo atributo de un ejemplo Vi el conjunto de valores posibles para ai vij el valor j-esimo del atributo ai

Definimos la funcin E
Vi

E ( ai ) =
j =1

pij + nij p+n

I ( pij , nij )

p = nmero de ejemplos positivos n = nmero de ejemplos negativos pij = nmero de ejemplos positivos con valor vij nij= nmero de ejemplos negativos con valor vij

0 I ( x, y ) = 0 x x y y x + y log x + y x + y log x + y

si x = 0 si y = 0 en otro caso

Algoritmo ID5R(T, Ejemplo)


T : rbol en curso Ejemplo : Nuevo ejemplo de aprendizaje. Atributo_salida: Atributo a predecir por el rbol. Atributos: Lista de atributos a comprobar por el rbol.
si T es nulo entonces definid un rbol trivial con Ejemplo sino si T slo contiene una raz de la misma clase que Ejemplo entonces Incorporad Ejemplo a la raz sino Begin (1) si T slo contiene una raz de distinta clase que Ejemplo entonces Expandir el rbol un nivel eligiendo el Atributo de Atributos de forma arbitraria (2) Actualizad los contadores de instancias (+,-) en cada valor de cada atributo (3) si la raz actual contiene un Atributo con un valor E que no es minimal entonces (3.a) Reestructurad el rbol situando en la raz un nodo con E minimal (3.b) Recursivamente situad el mejor nodo en cada subrbol excepto en el nodo referido en (4) (4) Recursivamente actualizad el subrbol dependiente de cada nodo de acuerdo con Ejemplo End

Reestructurando rboles (pullpull-up)


La reestructuracin de un rbol consiste en situar en los nodos superiores aquellos atributos que mejor expliquen la clasificacin de instancias de acuerdo con el indicador E. A este proceso se le denomina pull-up y obedece al siguiente esquema algortmico
si el atributo a subir anuevo est en la raz entonces fin_del_mtodo sino (1) Recursivamente subid el atributo anuevo a la raz del subrbol inmediato. Convertid cualquier cualquier rbol no expandido en uno expandido eligiendo anuevo como el atributo a testear (2) Transponer el rbol de forma que anuevo se site en la raz y la antigua raz como raz de cada subrbol dependiente de anuevo

Ejemplo

(1) expansin

A anuevo anuevo

(2) transposicin

anuevo A A

Un ejemplo (I)
Atributo de salida Altura Bajo Alto Alto Alto Bajo Alto Alto Bajo Color de pelo Rubio Moreno Rubio Moreno Moreno Rojo Rubio Rubio Color de ojos Marrones Marrones Azules Azules Azules Azules Marrones Azules

+ + +

Un ejemplo (II) Inicialmente el rbol es nulo Ejemplo = {-, Bajo, Rubio, Marrones} Salida

(Altura=Bajo, Pelo=Rubio, Ojos=Marrones)

Ejemplo = {-, Alto, Moreno, Marrones} Salida

(Altura=Bajo, Pelo=Rubio, Ojos=Marrones) (Altura=Alto, Pelo=Moreno, Ojos=Marrones)

Un ejemplo (III) Ejemplo = {+, Alto, Rubio, Azules} Salida


Altura
Bajo[0,1] Alto[1,1]

valor_de_atributo[+,-]

(Pelo=Rubio, Ojos=Marrones) (Pelo=Moreno, Ojos=Marrones)


Ojos tiene el menor valor E

Altura
Bajo[0,1] Alto[1,1] Azules[1,0]

Ojos
Marrones[0,2]

Ojos
Marrones[0,1]

Ojos
Marrones[0,1]

(Pelo=Rubio, Altura=Alto)

Altura
Bajo[0,1] Alto[0,1]

(Pelo=Rubio) (Pelo=Moreno) (Pelo=Rubio) (Pelo=Moreno)

Un ejemplo (IV) Ejemplo = {-, Alto, Moreno, Azules} Salida


Ojos
Azules[1,1] Marrones[0,2]

Pelo
Rubio[0,1] Moreno[0,1] Bajo[0,1]

Altura
Alto[0,1]

Altura
Alto[1,0]

(Altura=Alto) (Pelo=Rubio)

(Pelo=Moreno)

Un ejemplo (V) Ejemplo = {-, Bajo, Moreno, Azules} Salida


Pelo
Rubio[1,1] Moreno[0,3]

Ojos
Azules[1,0] Marrones[0,1] Azules[0,2]

Ojos
Marrones[0,1]

Altura
Alto[1,0]

Altura
Bajo[0,1]

(Altura=Alto) Altura (Altura=Bajo) Alto[0,1]

Un ejemplo (VI) Ejemplo = {+, Alto, Rojo, Azules} Salida


Pelo
Rubio[1,1] Moreno[0,3] Rojo[1,0]

Ojos
Azules[1,0] Marrones[0,1] Azules[0,2]

Ojos
Marrones[0,1]

+
(Altura=Alto, Ojos=Azules)

Altura
Alto[1,0]

Altura
Bajo[0,1]

(Altura=Alto) Altura (Altura=Bajo) Alto[0,1]

Un ejemplo (VII) Ejemplo = {-, Alto, Rubio, Marrones} Ejemplo = {+, Bajo, Rubio, Azules} Salida: La estructura de los atributos del rbol no cambia. Los contadores se actualizan.
Pelo
Rubio[2,2] Moreno[0,3] Rojo[1,0]

Ojos
Azules[2,0] Marrones[0,2] Azules[0,2]

Ojos
Marrones[0,1]

+
(Altura=Alto, Ojos=Azules)

Altura
Bajo[1,0]

Altura
Alto[0,1]

Bajo[0,1] Alto[1,0]

(Altura=Alto) Altura (Altura=Bajo) Alto[0,1]

El rbol del ejemplo anterior en formato ID3


Pelo
Rubio Moreno Rojo

Ojos
Azules Marrones

Вам также может понравиться