Ejercicio: Aplicar el algoritmo ID3 para encontrar, a partir del

Anuncio
Ejercicio:
Aplicar el algoritmo ID3 para encontrar, a partir del conjunto de entrenamiento, un árbol de decisión que nos permita determinar la rapidez de un
determinado insecto.
Valores de distintas entropı́as:
Ent([4, 3, 1]) = − 21 log2
1
2
−
3
8
log2
3
8
Ent([2, 1, 0]) = − 32 log2
2
3
−
1
3
log2
1
3
Ent([3, 2, 1]) = − 21 log2
1
2
−
1
3
log2
1
3
Ent([2, 1, 1]) = − 21 log2
1
2
−
1
2
log2
1
4
= 1.5
Ent([3, 1, 1]) = − 53 log2
3
5
−
2
5
log2
1
5
= 1.37
−
1
8
log2
1
8
= 1.41
= 0.92
−
1
6
log2
1
6
= 1.46
D = {E1 , E2 , E4 , E5 , E6 , E7 , E9 , E10 }
A = {Color, Alas, Tama~
no, Lepisto}
ID3(D, Rapidez, A)
No todos los ejemplos toman el mismo valor para Rapidez y A no está vacı́o.
El atributo con mayor ganancia de información es Color. Creamos un árbol
con nodo etiquetado Color. Para cada uno de los valores de Color:
negro: Creamos un arco con negro como etiqueta. D = {E1 , E5 , E9 } no está
vacı́o, entonces colocamos debajo del arco creado el subárbol
ID3(D, Rapidez, {Alas, Tamaño, Lepisto})
No todos los ejemplos toman el mismo valor para Rapidez y A no está
vacı́o. El atributo con mayor ganancia de información es Alas. Creamos
un árbol con nodo etiquetado Alas. Para cada uno de los valores de Alas:
si: Creamos un arco con si como etiqueta. D = {E1 , E9 } no está vacı́o,
entonces colocamos debajo del arco creado el subárbol
ID3(D, Rapidez, {Tamaño, Lepisto})
No todos los ejemplos toman el mismo valor para Rapidez y A no está
vacı́o. El atributo con mayor ganancia de información es Lepisto.
Creamos un árbol con nodo etiquetado Lepisto. Para cada uno de
los valores de Lepisto:
si: Creamos un arco con si como etiqueta. D = {E1 } no está vacı́o,
entonces colocamos debajo del arco creado el subárbol
ID3(D, Rapidez, {Tamaño})
1
Todos los ejemplos toman el mismo valor para Rapidez, creamos
un nodo etiquetado con alta.
no: Creamos un arco con no como etiqueta. D = {E9 } no está vacı́o,
entonces colocamos debajo del arco creado el subárbol
ID3(D, Rapidez, {Tamaño})
Todos los ejemplos toman el mismo valor para Rapidez, creamos
un nodo etiquetado con media.
no: Creamos un arco con no como etiqueta. D = {E5 } no está vacı́o,
entonces colocamos debajo del arco creado el subárbol
ID3(D, Rapidez, {Tamaño, Lepisto})
Todos los ejemplos toman el mismo valor para Rapidez, creamos un
nodo etiquetado con alta.
amarillo: Creamos un arco con amarillo como etiqueta. D = {E 2 , E10 } no está
vacı́o, entonces colocamos debajo del arco creado el subárbol
ID3(D, Rapidez, {Alas, Tamaño, Lepisto})
Todos los ejemplos toman el mismo valor para Rapidez, creamos un nodo
etiquetado con media.
blanco: Creamos un arco con blanco como etiqueta. D = {E 4 } no está vacı́o,
entonces colocamos debajo del arco creado el subárbol
ID3(D, Rapidez, {Alas, Tamaño, Lepisto})
Todos los ejemplos toman el mismo valor para Rapidez, creamos un nodo
etiquetado con alta.
rojo: Creamos un arco con rojo como etiqueta. D = {E6 , E7 } no está vacı́o,
entonces colocamos debajo del arco creado el subárbol
ID3(D, Rapidez, {Alas, Tamaño, Lepisto})
No todos los ejemplos toman el mismo valor para Rapidez y A no está
vacı́o. El atributo con mayor ganancia de información es Lepisto. Creamos
un árbol con nodo etiquetado Lepisto. Para cada uno de los valores de
Lepisto:
si: Creamos un arco con si como etiqueta. D = {E6 } no está vacı́o,
entonces colocamos debajo del arco creado el subárbol
ID3(D, Rapidez, {Alas, Tamaño})
Todos los ejemplos toman el mismo valor para Rapidez, creamos un
nodo etiquetado con alta.
no: Creamos un arco con no como etiqueta. D = {E7 } no está vacı́o,
entonces colocamos debajo del arco creado el subárbol
ID3(D, Rapidez, {Alas, Tamaño})
Todos los ejemplos toman el mismo valor para Rapidez, creamos un
nodo etiquetado con baja.
2
Valores de las distintas ganancias:
D = {E1 , E2 , E4 , E5 , E6 , E7 , E9 , E10 }
Ent(D)=Ent([4, 3, 1]) = 1.41
Ent(Dnegro)=Ent([2, 1, 0]) = 0.92
Ent(Dblanco)=Ent([1, 0, 0]) = 0
Ent(Damarillo)=Ent([0, 2, 0]) = 0
Ent(Drojo)=Ent([1, 0, 1]) = 1
Ganancia(D, Color)= 1.41 − 38 0.92 −
Ent(Da/si)=Ent([3, 2, 1]) = 1.46
1
4
= 0.81
Ent(Da/no)=Ent([1, 1, 0]) = 1
Ganancia(D, Alas)= 1.41 − 34 1.46 −
Ent(Dpeq.)=Ent([2, 1, 1]) = 1.5
Ent(Dgrande)=Ent([0, 2, 0]) = 0
1
4
= 0.06
Ent(Dmedio)=Ent([2, 0, 0]) = 0
Ganancia(D, Tama~
no)= 1.41 − 12 1.5 = 0.66
Ent(Dl/si)=Ent([3, 0, 0]) = 0
Ent(Dl/no)=Ent([1, 3, 1]) = 1.37
Ganancia(D, Lepisto)= 1.41 − 85 1.37 = 0.55
D = {E1 , E5 , E9 }
Ent(D)= 0.92
Ent(Da/si)=Ent([1, 1, 0]) = 1
Ganancia(D, Alas)= 0.92 −
2
3
Ent(Da/no)=Ent([1, 0, 0]) = 0
= 0.25
Ent(Dpeq.)=Ent([1, 1, 0]) = 1
Ent(Dgrande)=Ent([0, 0, 0]) = 0
Ganancia(D, Tama~
no)= 0.92 −
Ent(Dmedio)=Ent([1, 0, 0]) = 0
2
3
Ent(Dl/si)=Ent([1, 0, 0]) = 0
Ganancia(D, Lepisto)= 0.92 −
= 0.25
Ent(Dl/no)=Ent([1, 1, 0]) = 1
2
3
= 0.25
D = {E1 , E9 }
Ent(D)= 1
3
Ent(Dpeq.)=Ent([1, 1, 0]) = 1
Ent(Dgrande)=Ent([0, 0, 0]) = 0
Ent(Dmedio)=Ent([0, 0, 0]) = 0
Ganancia(D, Tama~
no)= 1 − 1 = 0
Ent(Dl/si)=Ent([1, 0, 0]) = 0
Ent(Dl/no)=Ent([0, 1, 0]) = 0
Ganancia(D, Lepisto) = 1
D = {E6 , E7 }
Ent(D)= 1
Ent(Da/si)=Ent([1, 0, 1]) = 1
Ent(Da/no)=Ent([0, 0, 0]) = 0
Ganancia(D, Alas)= 1 − 1 = 0
Ent(Dpeq.)=Ent([1, 0, 1]) = 1
Ent(Dgrande)=Ent([0, 0, 0]) = 0
Ent(Dmedio)=Ent([0, 0, 0]) = 0
Ganancia(D, Tama~
no)= 1 − 1 = 0
Ent(Dl/si)=Ent([1, 0, 0]) = 0
Ent(Dl/no)=Ent([0, 0, 1]) = 0
Ganancia(D, Lepisto) = 1
4
Descargar