Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arboles Decisión (UPV) - Muy Bueno PDF
Arboles Decisión (UPV) - Muy Bueno PDF
José M. Sempere
Departamento de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia
Bibliografía
• B Sierra
B. Sierra. Aprendizaje Automático
Automático. Ed
Ed. Pearson-
Pearson- Prentice Hall.
Hall 2006.
2006
• J.R. Quinlan. C 4.5: programs for machine learning. Ed. Morgan Kaufmann. 1993.
1
Un árbol de decisión es una representación de una función
multievaluada
f: A 1 A 2 ... A n B
A 1
A 2
Presión arterial ?
Baja
Alta Media
Azúcar en sangre ? Í
Índice de colesterol ? Sí
Alergia a antibióticos ? Sí No Sí
Sí No
Otras alergias ? Sí
Sí No
No Sí
2
Los árboles de decisión son adecuados cuando ...
3
Un algoritmo genérico para el aprendizaje de
árboles de decisión
finMétodo T1 T2 TM
Teoría de la probabilidad
Variables independientes
p(x,y)=p(x)p(y)
p( y | x) p( x)
p( x | y )
p( y)
4
Conceptos básicos de la teoría de la información (II)
Entropía H(x)
n
H ( X ) p ( X xi ) log 2 p ( X xi )
i 1
H ( X | Y ) p ( y ) p ( x | y ) log 2 p ( x | y )
y x
Teorema
Teorema. H(X Y) H(X) + H(Y)
(1) H(X,Y)
(2) H(X,Y) = H(X) + H(Y) sii X e Y son independientes
• Búsqueda
q voraz top-down
p
|S |
Ganancia( S , A) Entropía ( S )
vValores ( A )
V
|S|
Entropía ( S v)
5
Algoritmo ID3(Ejemplos,
ID3 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) Crear una raiz para el árbol.
(2) Si todos los ejemplos son positivos Return(raiz,+)
(3) Si todos
t d losl ejemplos
j l son negativos
ti R t
Return(raiz,-)
( i )
(4) Si Atributos= Return(raiz,l)
( l es el máximo valor común 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 decisión para raiz es A
(3) Para cada posible valor vi de A
(3.1) Añadir 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 añadir un nodo (n,l) a partir de la rama creada.
(l es el máximo valor común de Atributo_salida en Ejemplos).
sino añadir a la rama creada el subárbol
ID3(Ejemplos_vi, Atributo_salida, Atributos-{A})
End
Return(raiz)
6
Cálculo de entropías y ganancia de la información respecto del
atributo Presión arterial
c
10 10 4 4
Entropía ( S ) pi log 2 pi - log 2 - log 2 0 .863121
i 1 14 14 14 14
4 4 2 2
Entropía ( S PA Alta ) - log 2 - log 2 0.918296
6 6 6 6
5 5
Entropía ( S PA Baja ) - log 2 0
5 5
2 2 1 1
Entropía ( S PAMedia ) - log 2 - log 2 0.918296
3 3 3 3
6 5 3
Ganancia( S , PA) 0.863121 0.918296 0 0.918296 0.272788
14 14 14
c
10 10 4 4
Entropía ( S ) pi log 2 pi - log 2 - log 2 0.863121
i 1 14 14 14 14
5 5 2 2
Entropía ( S AS Alto ) - log 2 - log 2 0.863121
7 7 7 7
5 5 2 2
Entropía ( S AS Bajo ) - log 2 - log 2 0.863121
7 7 7 7
7 7
Ganancia ( S , AS ) 0.863121 0.863121 0.863121 0
14 14
7
Cálculo de entropías y ganancia de la información respecto del
atributo Índice de colesterol
c
10 10 4 4
Entropía ( S ) p i log 2 p i - log 2 - log 2 0.863121
i 1 14 14 14 14
6 6 3 3
Entropía ( S IC Alto ) - log 2 - log 2 0.918296
9 9 9 9
4 4 1 1
Entropía ( S IC Bajo ) - log 2 - log 2 0.721928
5 5 5 5
9 5
Ganancia ( S , IC ) 0.863121 0.918296 0.721928 0.0149564
14 14
c
10 10 4 4
Entropía ( S ) pi log 2 pi - log 2 - log 2 0.863121
i 1 14 14 14 14
6 6 3 3
Entropía ( S AASI ) - log 2 - log 2 0.918296
9 9 9 9
4 4 1 1
Entropía ( S AA NO ) - log 2 - log 2 0.721928
5 5 5 5
9 5
Ganancia ( S , AA) 0.863121 0.918296 0.721928 0.0149564
14 14
8
Cálculo de entropías y ganancia de la información respecto del
atributo Otras alergias
c
10 10 4 4
Entropía ( S ) p i log 2 p i - log 2 - log 2 0.863121
i 1 14 14 14 14
5 5 4 4
Entropía ( S OASI ) - log 2 - log 2 0.991076
9 9 9 9
5 5
Entropía ( S OA NO ) - log 2 0
5 5
9 5
Ganancia( S , OA) 0.863121 0.991076 0 0.226001
14 14
Ganancia((S,PA
Ganancia S,PA)) = 0.272788
Ganancia(S,AS) = 0
Ganancia(S,IC) = 0.0149564
Ganancia(S,AA) = 0.0149564
Ganancia(S,OA) = 0.226001
9
Presión arterial ?
Baja
Alta Media
10
Tabla de datos para calcular el subárbol de PA=Alta
No se realiza “backtracking”
Búsqueda no incremental
11
Hacia el algoritmo de aprendizaje de árboles de decisión C4.5
0 10 20 30 40 50
Temperatura
T c c T> c
12
Hacia el algoritmo de aprendizaje de árboles de decisión C4.5
Incorporación de otras medidas para la selección de atributos
Problema: La medida Ganancia favorece aquellas variables con mayor número
de posibles valores
Posible solución
Dados S (un conjunto de ejemplos de aprendizaje) y A (un atributo de los
ejemplos que puede tomar c posibles valores) definimos …
c
| Si | |S |
SplitInformation( S , A) log 2 i
i 1 | S | |S|
Ganancia ( S , A)
RatiodeGanancia( S , A)
SplitInformation( S , A)
Posibles soluciones
(2) Asignar a cada posible valor una probabilidad (frecuencia) de acuerdo con
el resto de ejemplos. A continuación repartir el ejemplo en cada uno de sus
valores de acuerdo con la p
probabilidad y hacer el cálculo de la Ganancia
13
Hacia el algoritmo de aprendizaje de árboles de decisión C4.5
Problema: ¿ Todos los atributos son igual de valiosos al hacer una clasificación ?
Posible solución
Ganancia 2 ( S , A) 2Ganancia ( S , A) 1
Coste( A) (Coste( A) 1) w
Definimos la función E
p = número de ejemplos positivos
Vi
pij nij n = número de ejemplos negativos
E ( ai ) I ( pij , nij ) pij = número de ejemplos positivos con valor vij
j 1 pn nij= número de ejemplos negativos con valor vij
0 si x 0
I ( x, y ) 0 si y 0
x x y y
x y log x y x y log x y en otro caso
14
Algoritmo ID5R(T,
ID5R 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 sólo contiene una raíz de la misma clase que Ejemplo
entonces Incorporad Ejemplo a la raíz
sino Begin
End
Ejemplo
A anuevo
A (1) expansión (2) transposición
anuevo anuevo A A
15
Un ejemplo (I)
+ Bajo
j Rubio Azules
Un ejemplo (II)
S lid
Salida
- (Altura=Bajo, Pelo=Rubio, Ojos=Marrones)
Salida
- (Altura=Bajo, Pelo=Rubio, Ojos=Marrones)
(Altura=Alto, Pelo=Moreno, Ojos=Marrones)
16
Un ejemplo (III)
Ejemplo = {+, Alto, Rubio, Azules}
Salida valor_de_atributo[+,-]
Altura
Bajo[0,1] Alto[1,1]
Ojos
Altura
Azules[1,0] Marrones[0,2]
Bajo[0 1]
Bajo[0,1] Alto[1,1]
[ , ]
+ Altura
Ojos Ojos (Pelo=Rubio, Bajo[0,1] Alto[0,1]
Marrones[0,1] Marrones[0,1] Altura=Alto)
(Pelo=Rubio) (Pelo=Moreno)
(Pelo=Rubio) (Pelo=Moreno)
Un ejemplo (IV)
Ejemplo = {-, Alto, Moreno, Azules}
Salida
Ojos
Azules[1,1] Marrones[0 2]
Marrones[0,2]
Pelo Altura
Rubio[0,1] Moreno[0,1] Bajo[0,1] Alto[0,1]
17
Un ejemplo (V)
Ejemplo = {-, Bajo, Moreno, Azules}
Salida
Pelo
Rubio[1,1] Moreno[0 3]
Moreno[0,3]
Ojos Ojos
Azules[1,0] Marrones[0,1] Azules[0,2] Marrones[0,1]
Un ejemplo (VI)
Ejemplo = {+, Alto, Rojo, Azules}
Salida
Pelo
Rubio[1,1]
Rojo[1,0]
Moreno[0,3]
Ojos Ojos
Azules[1,0] Marrones[0,1] Azules[0,2] Marrones[0,1] +
(Altura=Alto,
Altura Altura (Altura=Alto) Altura Ojos=Azules)
Alto[1 0]
Alto[1,0] Bajo[0 1]
Bajo[0,1] ((Altura=Bajo)
j ) Alto[0,1]
[ , ]
18
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]
Rojo[1,0]
Moreno[0,3]
Ojos Ojos
Azules[2,0] Marrones[0,2] Azules[0,2] Marrones[0,1] +
(Al
(Altura=Alto,
Al
Altura Altura (Altura=Alto) Altura Ojos=Azules)
Bajo[0,1]
Bajo[1,0] Alto[0,1] (Altura=Bajo) Alto[0,1]
Alto[1,0]
+ +
Pelo
Rubio Rojo
Moreno
Ojos
+
Azules Marrones
19