Árboles de decisión Si Dios no edifica Nicaragua, en vano trabajan los que la edifican
Conjunto de datos Dados los datos (o conjunto de aprendizaje) D={(x1, y1), (x2, y2)... (xm, ym)}
Inteligencia Artificial 2007
2
Conjunto de datos Dados los datos (o conjunto de aprendizaje) D={(x1, y1), (x2, y2)... (xm, ym)}
(X11, X12,...X1n) entrada
Inteligencia Artificial 2007
3
Conjunto de datos Dados los datos (o conjunto de aprendizaje) D={(x1, y1), (x2, y2)... (xm, ym)}
(X11, X12,...X1n) entrada
Inteligencia Artificial 2007
salida
Clasificación: cuando “y” es discreta Regresión: cuando “y” es continua
4
Árboles de decisión Algoritmo con datos binarios, ampliamente aplicable. f1
f2
f3
f4
y
0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 0
Árboles de decisión Algoritmo con datos binarios, ampliamente aplicable. f1
f2
f3
f4
y
0 1 1 0 0
Ejemplo positivos: 3, {X2, X3, X4} Ejemplos negativos: 3, {X1, X5, X6}
1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 0
D
Árboles de decisión Algoritmo con datos binarios, ampliamente aplicable. f1
f2
f3
f4
Ejemplo positivos: 3 Ejemplos negativos: 3
y
0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 0
f1 D
1
Árboles de decisión Algoritmo con datos binarios, ampliamente aplicable. f1
f2
f3
f4
Ejemplo positivos: 3 Ejemplos negativos: 3
y
0 1 1 0 0 1 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 1 1 1 0
f1 D
1 2 ejemplos positivos 1 ejemplo negativo
0
Clase de hip贸tesis f4
1
0 f3
0 0
f2
0
1 1
1
0
f3
0 1
Nodos internos: nombres de los atributos Un hijo por cada valor de los atributos Nodos hojas : salida
1 0
Clase de hip贸tesis f3
0
1
f2
0 0
f1
0
1 1
1
0 0 1
h(0,1,1,0)= 0
f2
1 0
Clase de hip贸tesis f3
0
1
f2
0 0
f1
0
1 1
1
0 0 1
h= (-f3 ^ f2)v(f3^ f1 ^-f2)
f2
1 0
Inclinación hacia árboles Ambos árboles de decisión y DNF con negación pueden representar cualquier función booleana. Entonces porque molestarnos con árboles?
Inclinación hacia árboles Ambos árboles de decisión y DNF con negación pueden representar cualquier función booleana. Entonces porque molestarnos con árboles? Porque tenemos un bonito algoritmo de árboles que es consistentes y tiende a la construcción de árboles sencillos(pocos nodos)
Inclinación hacia árboles Ambos árboles de decisión y DNF con negación pueden representar cualquier función booleana. Entonces porque molestarnos con árboles? Porque tenemos un bonito algoritmo de árboles que es consistentes y tiende a la construcción de árboles sencillos(pocos nodos) Como es difícil encontrar el árbol mínimo en un paso, usaremos una técnica voraz (cíclica).
Inclinación hacia árboles Ambos árboles de decisión y DNF con negación pueden representar cualquier función booleana. Entonces porque molestarnos con árboles? Porque tenemos un bonito algoritmo de árboles que es consistentes y tiende a la construcción de árboles sencillos(pocos nodos) Como es difícil encontrar el árbol mínimo en un paso, usaremos una técnica voraz (cíclica).
Algoritmo Desarrollado en paralelo en IA por Quinlan y en estadĂstica por Breiman, Fiedman, Olsen y Stone. Construir-arbol (Datos)
Algoritmo Desarrollado en paralelo en IA por Quinlan y en estadĂstica por Breiman, Fiedman, Olsen y Stone. construir-arbol (Datos) Si todos los elementos de Datos tiene el mismo valor y, entonces Hacer-nodo-hoja(y)
De lo contrario Atributo := tomeMejorAtributo(Datos) HagaNodoInterno( atributo, Construir-arbol (SeleccionFalso (Datos, atributo)) , Construir-arbol (SeleccionVerdad(Datos, atributo)))
Vamos a separar D: 9 positivos 10 negativos
Nuestra meta: construir un รกrbol que separa los negativos de los positivos con la menor cantidad de evaluaciones posibles.
Vamos a separar D: 9 positivos 10 negativos
f3 0 5 positivos 4 negativos
1 4 positivos 6 negativos
f7 0 6 positivos 0 negativos
1 3 positivos 10 negativos
C贸mo medimos del grado de uniformidad de los subconjuntos?
Entropía p: proporción de los ejemplos positivos en un conjunto de datos H= -p log2 p –(1 –p) log2 (1-p)
Entropía p: proporción de los ejemplos positivos en un conjunto de datos H= -p log2 p –(1 –p) log2 (1-p)
.. H .. .. .. ..
..
.. p
.. .. O log 0 = 0
EntropĂa p: proporciĂłn de los ejemplos positivos en un conjunto de datos H= -p log2 p –(1 –p) log2 (1-p)
f1
Ejemplo: 1 2 ejemplos positivos 1 ejemplo negativo
P: 2 /3
0 1 ejemplo positivo 2 ejemplos negativos
P: 1 /3
Vamos a separar H= -p log2 p –(1 –p) log2 (1-p)
D: 9 positivos 10 negativos
f3 0 D-3
5 positivos 4 negativos
f7
1 D
+
3
0
4 positivos 6 negativos
D-7 H= -5/9 log2 5/9 –(1 –5//9) log2 (1-5/9)
6 positivos 0 negativos
1 3 positivos
D+7 10 negativos
Vamos a separar H= -p log2 p –(1 –p) log2 (1-p)
D: 9 positivos 10 negativos
f3 0 D-3
5 positivos 4 negativos
f7
1 D
+
3
0
4 positivos 6 negativos
D-7 H= -5/9 log2 5/9 –(1 –5//9) log2 (1-5/9) H= -0.56 log 2 0.56 – (1 – 0.56) log 2 (0.44) H= - 0.56 (-0.84) - (0.44) (-1.18) H= 0.470 - (-0.52) H = 0.99
6 positivos 0 negativos
1 3 positivos
D+7 10 negativos
Vamos a separar D: 9 positivos 10 negativos
f3 0 D-3
5 positivos 4 negativos
H=.99
f7
1 D
+
3
0
4 positivos 6 negativos -
H=.97
D7
6 positivos 0 negativos
H=.00
1 D+7
3 positivos 10 negativos
H=.78
Vamos a separar D: 9 positivos 10 negativos
f3 0 D3-
5 positivos 4 negativos
H=.99
f7
1 D3
+
1
0
4 positivos 6 negativos
H=.97
6 positivos - 0 negativos
D7 -
3 positivos
D7+ 10 negativos
H=.00
H=.78
AE(j) = pjH(Dj+) + (1 – pj)H(Dj- ) % de D con fj =1
Subconjunto de D con fj =1
AE: promedio de entropĂa
Vamos a separar D: 9 positivos 10 negativos
f3 0 D3
5 positivos 4 negativos
H=.99
f7
1 D3
0
4 positivos 6 negativos
H=.97
AE = (9/19)*. 99 + (10/19)*. 97 = . 98
D7
6 positivos 0 negativos
H=.00
1 3 positivos
D7 10 negativos
H=.78
AE = (6/19)* 0 + (13/19)*. 78 = . 53 AE: promedio de entropĂa
Vamos a separar D: 9 positivos 10 negativos
f3 0 D3
5 positivos 4 negativos
H=.99
f7
1 D3
0
4 positivos 6 negativos
H=.97
AE = (9/19)*. 99 + (10/19)*. 97 = . 98
D7
6 positivos 0 negativos
H=.00
1 3 positivos
D7 10 negativos
H=.78
AE = (6/19)* 0 + (13/19)*. 78 = . 53 El mejor
AE: promedio de entropĂa
Algoritmo Desarrollado en paralelo en IA por Quinlan y en estadĂstica por Breiman, Fiedman, Olsen y Stone. Construir-arbol (Datos) Si todos los elementos de Datos tiene el mismo valor y, entonces Hacer-nodo-hoja(y)
De lo contrario Atributo := tomeMejorAtributo(Datos) HagaNodoInterno( atributo, ConstruyaArbol (SeleccionFalso (Datos, atributo)) , ConstruyaArbol (SeleccionVerdad(Datos, atributo)))
Tomaremos el atributo que minimiza el promedio de entropĂa.
Deteniéndose Detener la recursión si los datos contienen solo instancias múltiples de la misma x con diferentes valores y… poniéndole a la hoja el valor y mas frecuente. Considere detenerlo para evitar saturar cuando: La entropía de los datos es mas bajo que el umbral (ej. 0.2) El número de elementos en el conjunto de datos esta bajo el umbral (ej. 3 elementos)
f1
f2
f3
f4
y
0
1 1 0 0
1
0 1 1 1
1
1 1 0 1
0
0 1 1 1
1
0 0 1 0
0
1 1 1 0
Simulación •H(D) = . 92 •AE1= . 92, AE2 = . 92, AE3 =. 81, AE4 = 1
Simulaci贸n f3
0 f1
f2
f3
f4
1 y
1 0 0 1 0
f1
f2
f3
f4
y
0
1 1 0 0
1
0 1 1 1
1
1 1 0 1
0
0 1 1 1
0
1 1 1 0
Simulaci贸n f3
0 0
1 f1
f2
f3
f4
y
0
1 1 0 0
1
0 1 1 1
1
1 1 0 1
0
0 1 1 1
0
1 1 1 0
Simulaci贸n AE1 = . 55,
f3
0 0
AE2 = .55, AE4 = . 95
1 f1
f2
f3
f4
y
0
1 1 0 0
1
0 1 1 1
1
1 1 0 1
0
0 1 1 1
0
1 1 1 0
Simulaci贸n f3
0
1
0
f1
1
0 f1
f2
f3
f4
y
f1
f2
0
1 1 0 0
1
0 1 1 1
0
0 1 1 1
1
1 1 0 1
0
1 1 1 0
f3
f4
y
Simulaci贸n f3
0
1
0
f1
1
0 f1
f2
f3
f4
y
0
1 1 0 0
0
0 1 1 1
0
1 1 1 0
1
Simulaci贸n
f3
0
1
0
f1
1
0
1
f2
0 f3
f4
1
f1
f2
y
f1
f2
f3
f4
y
0
0 1 1 1
0
1 1 0 0
0
1 1 1 0
Simulaci贸n
f3
0
1
0
f1
1
0
1
f2
0 1
1 0 Hecho!
Or Exclusivo (A ^-B) v(-A^B)
Or Exclusivo •H(D) = .92 •AE1= .92, AE2=.92, •AE3=.92, AE4= .92
(A ^-B) v(-A^B) f1
f2
f3
f4
y
0
1 1 0 0
1
0 1 0 0
1
1 1 0 1
0
0 0 1 1
1
0 0 1 0
0
1 0 1 0
Or Exclusivo f1 0 f3
1
f1
f2
f4
y
f1
f2
f3
f4
y
0
1 1 0
0
1
0 1 0 0
0
0 0 1
1
1
1 1 0 1
0
1 0 1
0
1
0 0 1 0
Or Exclusivo f1 0
1
f2 0 f1
f2
f3
f4
y
0
0 0 1
1
1
f3
f1
f2
1
0 1 0 0
1
1 1 0 1
1
0 0 1 0
f1
f2
f4
y
0
1 1 0
0
0
1 0 1
0
f3
f4
y
Or Exclusivo f1 0
1
f2 0
1
1 0
f1
f2
f3
f4
y
1
0 1 0 0
1
1 1 0 1
1
0 0 1 0
Or Exclusivo f1
0
0
1
f2
f2 1
1
1
0 0
0
1
Votación del congreso Honorarios médicos congelados 0
1
R
Recorte combustible
119
0
1
D
Misiles mx
90
0
D Tamaño mínimo de la hoja= 20
20
1
R 3
Minería de datos (data mining) Para hacer predicciones útiles en aplicaciones. Los árboles de decisión son muy populares porque Son fáciles de implementar Eficientes(aun con inmensas cantidades de datos) Fácil de entender la hipótesis resultante
Tomado del Instituto Tecnol贸gico de Massachusetts www.owc.mit.edu 6.034 Artificial Intelligence 2004 Archivo: ch5-mach1.pdf
Ejercicio 1 Dado el siguiente conjunto de datos: a. Calcule los valores de entropía para cada atributo hasta organizar la hipótesis como árbol de decisión sabiendo que: f 1 f2 f3 f4 y
0 1 1 0 0
H: -p log2 p – (1- p) log2 (1 – p) y que:
1 0 1 1 1
AE(j)= pj H(D+j ) + (1- pj) H(D-j)
1 1 1 0 0
b. Clasifique el nuevo caso con la hipótesis encontrada.
0 0 1 1 1 1 0 0 1 0 0 1 1 1 1
1 0 0 1
Para usar las calculadoras que no tienen logaritmo base 2:Log base 2 de x = log(x) / log(2) o Ln (x) / ln(2)
x 1 1 2 1 3 1 2 3 4 1 2 5 1 2 3 4 5 6
y 2 3 3 4 4 5 5 5 5 6 6 6 7 7 7 7 7 7
-(x/y)*log(x/y) 0.5 0.53 0.39 0.5 0.31 0.46 0.53 0.44 0.26 0.43 0.53 0.22 0.4 0.52 0.52 0.46 0.35 0.19
x 1 3 5 7 1 2 4 5 7 8 1 3 7 9
y
-(x/y)*log(x/y)
8 8 8 8 9 9 9 9 9 9 10 10 10 10
0.38 0.53 0.42 0.17 0.35 0.48 0.52 0.47 0.28 0.15 0.33 0.52 0.36 0.14
Ejercicio 2 Responda el siguiente problema.
0
1
1 2
1
3
0
4
1
5
6
7
1
8
0
9
1
10 11 12
Cual de los tres siguientes evaluaciones usted escogería como el nodo raíz en un árbol de decisión? X <= 1.5 x<= 5 x<=10.5 Justifique su respuesta.
50
EntrEgar para El próximo día dE clasE: BusquE un tEma (medicina, finanzas, ingeniería) con El cual sE puEdan organizar un conjunto dE casos rEsuEltos. inclúyalos En una matriz. EscríBalo como una matriz Binaria.