You are on page 1of 13

FUNDACION UNIVERSITARIA KONRAD LORENZ

TRABAJO FINAL DE SISTEMAS BASADOS EN EL


CONOCIMIENTO 2

PREVYS RENGIFO RENGIFO


DOCENTE

DIEGO ALEJANDRO ESPITIA VILLALOBOS


643003
MATEMATICAS

Bogotá D.C. 3 de Diciembre de 2007.


REDES NEURONALES vs. ÁRBOLES DE DESICION

El propósito del presente trabajo es observar, estudiar y analizar como se


comporta una red neuronal frente a un problema de asignación de reglas, cómo
trabaja sabiendo que las redes se utilizan principalmente para problemas de
clasificación. Para esto se proceder a estudiar dos ejemplos: uno con pocos
datos relativamente sencillo de trabajar y el otro con muchos más datos y datos
de validación para determinar si la red efectivamente está aprendiendo y está
aprendiendo las reglas de fondo o si por el contrario simplemente está
“memorizando” la información presentada.

El primer problema es el siguiente:

Se desea construir un árbol de decisión que permita determinar si se juega o


no tenis, a partir del valor de los atributos: Ambiente, Temperatura, Humedad y
Viento, teniendo en cuenta que se han observado y registrado los siguientes
casos:

PATRON AMBIENTE TEMPERATURA HUMEDAD viento Jugar tenis


1 soleado caliente alta débil n
2 soleado caliente alta fuerte n
3 nublado caliente alta débil s
4 lluvioso moderada alta débil s
5 lluvioso fría Normal débil s
6 lluvioso fría Normal fuerte n
7 nublado fría Normal fuerte s
8 soleado moderada alta débil n
9 soleado fría Normal débil s
10 lluvioso moderada Normal débil s
11 soleado moderada Normal fuerte s
12 nublado moderada alta fuerte s
13 nublado caliente Normal débil s
14 lluvioso moderada alta fuerte n
El cual, mediante el método de construcción del árbol de decisión ha
presentado el siguiente resultado:1

Es decir, que los datos presentados fueron reducidos a 5 reglas de decisión


que son:

1) SI AMBIENTE =SOLEADO Y HUMEDAD=ALTA, ENTONCES NO JUGAR TENIS.


2) SI AMBIENTE =SOLEADO Y HUMEDAD=NORMAL, ENTONCES SI JUGAR TENIS.
3) SI AMBIENTE =NUBLADO, ENTONCES SI JUGAR TENIS.
4) SI AMBIENTE =LLUVIOSO Y VIENTO=FUERTE, ENTONCES NO JUGAR TENIS.
5) SI AMBIENTE =LLUVIOSO Y VIENTO=DEBIL, ENTONCES SI JUGAR TENIS.

Lo cual es una ganancia significativa en cuanto a que para tomar nuevas


decisiones simplemente se debe seguir las reglas.

Para la red neuronal se ha decidido realizar la siguiente codificación de los


datos:

Ambiente
soleado nublado lluvioso
1 0 0
1 0 0
0 1 0
0 0 1
0 0 1
0 0 1
1
Árbol realizado con el applet de http://www.cs.ubc.ca/nest/lci/CIspace/Version4/dTree/.
0 1 0
1 0 0
1 0 0
0 0 1
1 0 0
0 1 0
0 1 0
0 0 1

Temperatura
alta moderada baja
1 0 0
1 0 0
1 0 0
0 1 0
0 0 1
0 0 1
0 0 1
0 1 0
0 0 1
0 1 0
0 1 0
0 1 0
1 0 0
0 1 0

Humedad
alta baja
1 0
1 0
1 0
1 0
0 1
0 1
0 1
1 0
0 1
0 1
0 1
1 0
0 1
1 0

Viento
fuerte débil
0 1
1 0
0 1
0 1
0 1
1 0
1 0
0 1
0 1
0 1
1 0
1 0
0 1
1 0

Jugar Tenis
0
0
1
1
1
0
1
0
1
1
1
1
1
0

Donde 1 significa que se presenta el atributo y 0 que no se presenta; además,


para la decisión de Jugar Tenis se ha decidido que 1 significa que se juega
tenis y 0 que la decisión es que no se debe jugar.

Primero se ha decidido utilizar una red que consta de 1 capa oculta formada
por 3 neuronas y una sola neurona de salida; la función de activación que se
utilizó para la primera capa es la función logística y la función para la segunda
capa es la función identidad; la red se entrenó con el método del gradiente y se
han producido las siguientes salidas:

simulada
salida Jugar tenis
0,0016799 0
-0,043144 0
10.221 1
0,927 1
0,99134 1
-0,0034466 0
0,98245 1
0,041324 0
0,99889 1
10,448 1
0,97676 1
0,96479 1
10,514 1
0,0066269 0

Los resultados obtenidos por la red son los presentados al lado izquierdo de la
anterior tabla, mientras que los datos del lado derecho se han hecho según la
siguiente regla:

Si el valor presentado por la red es menor que 0.5 entonces la decisión es 0,


en caso contrario la decisión es 1.

Salida
Deseada Simulada
0 0
0 0
1 1
1 1
1 1
0 0
1 1
0 0
1 1
1 1
1 1
1 1
1 1
0 0

Si se observa las tablas de la salida esperada y de la salida obtenida, se ve


que la red ha encontrado satisfactoriamente todos los resultados;
desgraciadamente, como el ejemplo posee pocos datos no se puede hacer
algún tipo de validación de los resultados obtenidos, es decir que no se puede
verificar si la red efectivamente extrajo los patrones que poseen estos datos o
si los memorizo. Sin embargo, se puede observar en un primer intento de hacer
que una red reemplace a un árbol de decisión se ha logrado.

Ahora se presenta el problema de entrenar la red con 2 neuronas de salida, por


lo cual estos datos se han clasificado de la siguiente manera:

Salidas
s n
0 1
0 1
1 0
1 0
1 0
0 1
1 0
0 1
1 0
1 0
1 0
1 0
1 0
0 1

Entrenando de nuevo la red ahora con estos datos y con los mismos
parámetros de entrenamiento se obtienen las siguientes salidas:

Salidas
s n
0 1
0 1
1 0
1 0
1 0
0 1
1 0
0 1
1 0
1 0
0 1
1 0
1 0
0 1

Salidas
dato Deseada Simulada
s n S n
1 0 1 0 1
2 0 1 0 1
3 1 0 1 0
4 1 0 1 0
5 1 0 1 0
6 0 1 0 1
7 1 0 1 0
8 0 1 0 1
9 1 0 1 0
10 1 0 1 0
11 1 0 0 1
12 1 0 1 0
13 1 0 1 0
14 0 1 0 1

Si se observa la tabla se podrá ver que en el dato numero 11 la red no clasifico


bien la información presentada, por lo tanto se puede pensar que al cambiar los
datos de espacio, el problema se complica para la red y no le permite procesar
debidamente esta información y llegar a una respuesta adecuada.

Se debe entonces analizar que tal se comporta una red si el problema es más
complejo.

Se presenta ahora el siguiente problema2:

Se desea clasificar de 1 a 7 los animales de acuerdo con las siguientes


características:

1) Hair
2) Feathers
3) Eggs
4) Milk
5) Airborne
6) Aquatic
7) Predator
8) Teeth
9) Backbone

2
Tomado de http://www.cs.ubc.ca/nest/lci/CIspace/Version4/dTree/
10)Breathes
11) Venemous
12)Fins
13)Legs
14)Tails
15)Domestic
16)Catsize

Atributos que se clasifican como 1 si poseen esa característica o 0 si no la


poseen, aunque el atributo 13 se clasifica con el número de patas que posea el
animal (p.e.: 2 si es bípedo, 4 si es cuadrúpedo, etc.).

Los datos que se presentan son 51 de entrenamiento y 50 de validación. Como


en el primer ejemplo al generar el árbol de decisión con el método de ganancia
de información se obtuvo la siguiente respuesta3:

Al comprobar como se comporta el árbol de decisión con los datos de


validación se obtiene que la efectividad de éste fue de 96%, es decir, que de
los 50 datos de validación únicamente falló en 24.

3
Árbol generado con el applet de la página http://www.cs.ubc.ca/nest/lci/CIspace/Version4/dTree/
4
Resultados obtenidos de la página http://www.cs.ubc.ca/nest/lci/CIspace/Version4/dTree/
Para resolver este problema por medio de redes neuronales se ha decidido
entrenarlas por medio de MatLab de manera análoga al ejemplo anterior, con el
método de entrenamiento del gradiente mejorado (traingda) debido a que al
entrenar la red con el método trainlm se obtiene el error de que la matriz de
entrada de los datos esta mal condicionada, es decir que es casi singular.

Se obtuvieron los siguientes resultados:

• Red Neuronal con entradas discretas (0 o 1) y 7 neuronas en la capa de


salida con valor discreto (0 o 1).

Funciones de Numero de neuronas Iteraciones errores Porcentaje de error


activación
en la capa oculta Entrenamiento Validación Entrenamiento Validación
purelin purelin 3 20000 5 15 9.8% 30.0%
tansig purelin 3 20000 5 12 9.8% 24.0%
logsig purelin 3 20000 5 12 9.8% 24.0%
logsig purelin 3 40000 5 12 9.8% 24.0%
purelin purelin 4 20000 2 17 3.9% 34.0%
tansig purelin 4 20000 2 11 3.9% 22.0%
logsig purelin 4 20000 34 11 66.7% 22.0%
logsig purelin 4 40000 4 8 7.8% 16.0%
purelin purelin 5 20000 1 12 2.0% 24.0%
tansig purelin 5 20000 4 9 7.8% 18.0%
logsig purelin 5 20000 2 12 3.9% 24.0%
logsig purelin 5 40000 1 9 2.0% 18.0%

• Red Neuronal con entradas continúas y una neurona en la capa de


salida con valor continuo.

Funciones de Numero de neuronas Iteraciones errores Porcentaje de error


activación en la capa oculta Entrenamiento Validación Entrenamiento Validación
purelin purelin 2 20000 2 12 3.9% 24.0%
tansig purelin 2 20000 0 13 0.0% 26.0%
logsig purelin 2 20000 0 14 0.0% 28.0%
logsig purelin 2 40000 0 11 0.0% 22.0%
purelin purelin 3 20000 2 14 3.9% 28.0%
tansig purelin 3 20000 0 13 0.0% 26.0%
logsig purelin 3 20000 0 7 0.0% 14.0%
logsig purelin 3 40000 0 12 0.0% 24.0%
purelin purelin 4 20000 2 12 3.9% 24.0%
tansig purelin 4 20000 0 10 0.0% 20.0%
logsig purelin 4 20000 0 12 0.0% 24.0%
logsig purelin 4 40000 0 12 0.0% 24.0%

• Red Neuronal con entradas continuas, 7 neuronas en la capa de salida


con valor discreto (0 o 1).

Funciones de Numero de neuronas Iteraciones errores Porcentaje de error


activación en la capa oculta Entrenamiento Validación Entrenamiento Validación
purelin purelin 3 20000 5 12 9.8% 24.0%
tansig purelin 3 20000 10 17 19.6% 34.0%
logsig purelin 3 20000 9 16 17.6% 32.0%
purelin purelin 4 20000 2 13 3.9% 26.0%
tansig purelin 4 20000 2 12 3.9% 24.0%
logsig purelin 4 20000 2 13 3.9% 26.0%
purelin purelin 5 20000 1 11 2.0% 22.0%
tansig purelin 5 20000 1 12 2.0% 24.0%
logsig purelin 5 20000 1 11 2.0% 22.0%
• Red neuronal con entradas discretas y una neurona en la capa de salida

Funciones de Numero de neuronas Iteraciones errores Porcentaje de error


activacion en la capa oculta Entrenamiento Validación Entrenamiento Validación
purelin purelin 3 20000 2 12 3.9% 24.0%
tansig purelin 3 20000 0 11 0.0% 22.0%
logsig purelin 3 20000 0 9 0.0% 18.0%
log sig purelin 3 40000 0 13 0.0% 26.0%
purelin purelin 4 20000 2 12 3.9% 24.0%
tansig purelin 4 20000 0 10 0.0% 20.0%
logsig purelin 4 20000 0 12 0.0% 24.0%
purelin purelin 5 20000 2 12 3.9% 24.0%
tansig purelin 5 20000 0 10 0.0% 20.0%
logsig purelin 5 20000 0 10 0.0% 20.0%
loigsig purelin 5 40000 0 5 0.0% 10.0%

Como se observa en las anteriores tablas el modelo que mejor se aproxima a la


inferencia hecha por el árbol de decisión es cuando se entrena la red con
valores discretos y salida continua, con 5 neuronas en la capa oculta y con
funciones de activación logsig y purelin; sin embargo, se observa también que
el error de los datos de validación con el árbol de decisión es menor que el
error obtenido por el método de la red, aunque la diferencia no es muy grande,
lo cual sugiere que si se realizan más iteraciones o se aumenta el número de
capas ocultas de la red puede que se obtenga un error aún más pequeño.

Conclusiones

• Aunque no se puede generalizar los resultados obtenidos en los


anteriores ejemplos, se puede percibir que mediante una red neuronal
es posible aproximar la salida producida mediante un árbol de decisión
de una manera exitosa siempre y cuando el problema sea relativamente
sencillo.

• Cuando el problema que se trabaja es complejo se puede encontrar una


red que aproxime adecuadamente la inferencia realizada por el árbol de
decisión, y si bien no siempre se podrá encontrar una red que no deje
errores, si existe la probabilidad de que exista una red que por lo menos
iguale el error cometido por el árbol.

• Al observar los errores generados por las redes neuronales se puede ver
que se obtienen los errores más pequeños cuando las salidas son
continuas que cuando son discretas; por lo tanto, en algunas ocasiones
el trasladar los datos del espacio en que se encuentran a uno de mayor
dimensión puede provocar que el problema se vuelva mas complicado
de resolver para la red, debido a que , si bien se tiene mayor libertad, se
debe ahora entrenar la red para que se acomode a una mayor cantidad
de restricciones; luego, debe hacerse esta transformación siempre y
cuando se esté suficientemente seguro que en este espacio el problema
se facilitará y por consiguiente la solución se obtendrá de una manera
más sencilla.

You might also like