Upload
ulisesroman
View
227
Download
0
Embed Size (px)
Citation preview
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
1/44
Un Modelo Conceptualpara el Desarrollo de Árboles de Decisión
con Programación Genética
Leonardo Jiménez MoscovitzFundación Universitaria Konrad Lorenz
Matemático
Director: Dr. Nelson Obregón NeiraIC, MSc, PhD.
Especialización en Informáticay
Ciencias de la Computación
28 de mayo de 2007
Resumen
Este trabajo explora la generación de árboles de decisión siguiendola metodología de la programación genética. Al observar los algoritmosbásicos clásicos como ID3 y algunas de sus limitaciones, surge la inqui-etud de aplicar la PG de la manera menos restringida posible, para así examinar las soluciones obtenidas. La presentación es conceptual, aunquese muestran aquí algunos fragmentos de código utilizado.
1
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
2/44
Índice
Introducción 3
1. Árboles de Decisión y PG en el Marco de la IA 41.1. Inteligencia Artificial . . . . . . . . . . . . . . . . . . . . . . . . . 41.2. Aprendizaje Automático . . . . . . . . . . . . . . . . . . . . . . . 41.3. Reconocimiento de Patrones . . . . . . . . . . . . . . . . . . . . . 41.4. Minería de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.5. Árboles de Decisión . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5.1. Ventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.5.2. Inducción de Árboles de Decisión. . . . . . . . . . . . . . 91.5.3. Algunos Métodos de Validación para Reducir el Sobreajuste. 12
1.6. Programación Genética . . . . . . . . . . . . . . . . . . . . . . . 131.6.1. Generalidades de la PG . . . . . . . . . . . . . . . . . . . 15
2. Generación de Árboles de Decisión con PG. 252.1. Tamaño del Espacio de Búsqueda . . . . . . . . . . . . . . . . . . 252.2. Aplicación de la PG a los Árboles de Decisión. . . . . . . . . . . 27
2.2.1. Ciclo Evolutivo General . . . . . . . . . . . . . . . . . . . 292.2.2. Generación de la Población Inicial. . . . . . . . . . . . . . 332.2.3. Operadores Evolutivos y Mecanismos de Selección . . . . 342.2.4. Evaluación de los Árboles de Decisión . . . . . . . . . . . 382.2.5. Diseño General de la Solución . . . . . . . . . . . . . . . . 38
3. Conclusiones 43
Referencias 44
2
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
3/44
Introducción
El presente trabajo exploratorio que representa la investigación desarrolladadurante algo más de un mes, referente a la combinación de dos técnicas modernasde aprendizaje de máquina: los árboles de decisión y la programación genética.Se examinó bibliografía y software existente, y con base en esa exploración sedecidió presentar un desarrollo conceptual que sirviera de base a la generaciónde árboles de decisión mediante programación genética, con la menor cantidadposible de restricciones, y lograr de esta manera la exploración más exhaustivadel espacio de búsqueda.
La ciencia está dominada cada vez más por la necesidad de una aplicabilidadinmediata. La era del conocimiento en la cual se está adentrando la humanidadha incorporado una competitividad comercial cada vez mayor, global e inmedi-ata.
Por lo tanto, se buscan afanosamente nuevas técnicas, que tengan aplicabil-
idad en el menor tiempo posible y además, que tengan interés comercial. Estees el caso de las técnicas de IA, muchas de ellas orientadas hacia la minería dedatos. En la medida en que se pueda extraer información útil de una base dedatos, más valiosas se hacen las herramientas que se utilizan para ello, y másapoyo reciben los investigadores que las desarrollan.
La técnica de los árboles de decisión tiene grán interés por ser de aplicaciónsencilla y por ser una aplicación de caja blanca: Un árbol de decisión representaun conjunto de reglas si-entonces, y estas reglas se pueden extraer e interpretarde una manera sencilla.
La construcción del mejor árbol de decisión es un problema de complejidadexponencial, y para algunos tipos de árbol puede llegar a ser un problema NPHard [Llo07]. Los árboles que se obtienen pueden adolecer de algunos problemas,tales como el sobreajuste a los datos de entrenamiento o el excesivo tamaño.
Los algoritmos tradicionales (ID3, C4.5 por ejemplo) no exploran todo elespacio de búsqueda. En este punto, la programación genética puede intentarun aporte en el proceso de construir un buen árbol de decisión. El modelo con-ceptual que se elabora intenta en primera instancia dejar que la evolución corralo más libre posible, con el fin que permita observar los resultados obtenidosbajo esta aproximación.
En un árbol de decisión, se espera que un recorrido desde la raíz hasta unnodo terminal no repita nodos con el mismo atributo. Sin embargo, aunqueen la generación de los árboles iniciales se pueda restringir esta opción paraobtener árboles suficientemente pequeños, no se piensa controlar este aspectoinicialmente. El objetivo que se persigue es que en las primeras implementacionesse pueda observar y examinar el proceso de evolución libre, en el cual la principal
o tal vez la única presión evolutiva se deba a la aptitud de los árboles.En la sección 2.2 se presentan los algoritmos principales, y el esqueleto prin-cipal de la implementación en C++ mediante algunas clases simples.
3
varios meses
varios meses
varios mesesvarios meses
varios meses
algunos meses y días
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
4/44
1. Árboles de Decisión y PG en el Marco de la
IA1.1. Inteligencia Artificial
La Inteligencia Artificial (AI) es una de las disciplinas más avanzadas dentrode las nuevas tecnologías de la información, y ha surgido como una respuestaa la necesidad de encontrar modelos y programas del llamado comportamientointeligente [Mar87]. La AI trata con adaptación, aprendizaje o conductainteligente, para ser desarrollada en máquinas o computadoras.
En el orígen y desarrollo de la AI confluyeron dos puntos de vista: el científico,que intenta simular con el computador la verificación de teorías sobre los mecan-ismos de la inteligencia; y el de ingeniería, que intenta dar a los computadorescapacidades lo más cercanas posibles a las intelectuales [Mar87]. Para ello los
usuarios de AI se han debido enfrentar a cuestiones nuevas y muy variadas, y alpretender resolverlas ha desarrollado un enorme conjunto de innovadoras técni-cas: representación y modelización del conocimiento, búsqueda heurís-tica, aprendizaje automático, y técnicas de razonamiento aproximadoentre muchas otras.
Las diferentes técnicas que se han desarrollado a medida que evolucionala AI no son excluyentes entre sí, sino que más bien se complementan unasa otras. Eventualmente algunas técnicas pueden desaparecer del interés de losinvestigadores cuando, según el estado del arte en un momento dado, esténsuficientemente desarrolladas.
1.2. Aprendizaje Automático
Al considerar la AI, es fácil ver que una de las áreas más importantes con-siste en lo que se denomina aprendizaje de máquinas o aprendizaje automático(machine learning ). Su objetivo fundamental es el desarrollo de técnicas quepermitan que una máquina, la computadora, pueda generalizar comportamien-tos a partir de información no estructurada, y que se suministra en forma deejemplos.
La generalización del comportamiento es lo que se conoce como aprendiza- je, que se puede considerar en general, perteneciente a uno de los siguientesdos tipos: inductivo y deductivo. El aprendizaje automático se clasifica dentrodel tipo de aprendizaje inductivo, ya que estrae reglas y patrones a partir deconjuntos masivos de datos.
1.3. Reconocimiento de Patrones
Esto nos introduce en el concepto de reconocimiento de patrones, comoun campo del aprendizaje automático: el reconocimiento de patrones se puededefinir como el acto de tomar datos no estructurados de entrada y encontrar enellos categorías, reglas o patrones ocultos. Es de especial interés que las reglasobtenidas se puedan hacer explícitas y sean almacenadas en el computador, con
4
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
5/44
el fin de que sean utilizadas posteriormente para clasificar adecuadamente unconjunto de datos nuevo.
1.4. Minería de Datos
Dentro de los campos de aplicación particulares que existen detrás del apren-dizaje automático se puede encontrar principalmente la minería de datos. Ladisposición de enormes cantidades de información ha hecho crecer un gran in-terés en manipular dichos datos y extraer de ellos información que puede ser devalor para quien posee la base de datos.
1.5. Árboles de Decisión
Dentro del área de la AI, y más exactamente dentro de la sub-área delaprendizaje automático se encuentran los árboles de decisión. Son utilizados
principalmente con propósitos de clasificación, pero son también útiles paradescubrir características de los datos que no son directamente visibles [Roa06].Por este motivo, los árboles de decisión son importantes tanto en aplicacionesde clasificación como de minería de datos.
Un árbol de decisión es en esencia un modelo predictivo, esto es, permiteque las observaciones acerca de las características de un elemento conduzcan aconclusiones acerca de un valor objetivo. La técnica de aprendizaje automáticoque permite la inducción de un árbol de decisión a partir de un conjunto dedatos se llama aprendizaje de árboles de decisión.
Si se hace referencia a los árboles de decisión como una técnica, se dice queson un método para aproximar funciones objetivo de valor discreto.
Definición 1.1 (Árbol de Decisión) Sea T un grafo acíclico dirigido, en el
cual se cumple que cada nodo del grafo es 1. Un nodo no terminal o interno si tiene p nodos hijos, p ≥ 1. Los nodos
internos están etiquetados con atributos.
2. un nodo terminal u hoja si el nodo no tiene nodos hijos. Los nodos termi-nales están etiquetados con clasificaciones. El conjunto de todas las hojas de T se llama T̂ .
Cada nodo tiene exactamente un padre, a excepción del nodo superior o raiz,que no tiene padre.
Cada arco o rama del grafo que sale de un nodo etiquetado con un atributoai, está a su vez etiquetado con alguno de los posibles valores v de ai.
Los nodos internos equivalen a pruebas de un atributo, y las ramas que salen
de un nodo equivalen a las resultados para la prueba.
Notación 1.1 Se utilizará la siguiente notación:
El tamaño del árbol T se denota por |T | , y el tamaño del conjunto de
terminales T̂ se denota por T̂ .
5
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
6/44
Atr ibuto i
A tr ibu to j A tr ibu to k
V a l_1 Va l_ n* * *
V a l_1 V al_n2* * *
Valor
Atr ibutoobjetivo
Valor
Atr ibutoobjetivo
* * *
Figura 1: Estructura de un Arbol de Decisión
Al conjunto de todos los atributos que conforman el árbol de decisión se le llamará A, y su tamaño será |A| .
Al conjunto de todas las clases se les llama Y , y cada clase tiene asignada un valor entero, de tal manera que C = {0, 1,...,K − 1} donde K ≥ 2
Por lo tanto, con esta definición, se tiene que la cantidad de nodos del
árbol es |T | , mientras que la cantidad de hojas es T̂ .
La estructura del árbol de la figura 1 muestra los nodos internos, ramas yhojas. Un nodo interno representa la prueba de un atributo, mientras que lasramas representan los diferentes valores que puede tomar el atributo. Las hojasrepresentan los valores de clasificación para la secuencia de pruebas que va desdeel nodo raiz hasta llegar a la hoja.
Las entradas del árbol de decisión son un conjunto de características o atrib-utos, que pueden representar objetos o situaciones. La salida correspondiente delárbol es un valor correspondiente del atributo que se desea conocer. Se puedetambién entender la salida del árbol como un valor booleano Si/No para losdiversos valores de atributo de salida.
La Tabla 1.1 muestra una tabla de datos usual, tal como se obtiene a partirde las bases de datos originales del usuario. La fila de encabezados de las nprimeras columnas muestran todos los atributos considerados y por lo tantocontienen las pruebas para los nodos internos (por ejemplo ¿Cuanto vale elatributo A?). Las filas 1..m de las primeras n columnas son valores para losatributos considerados, y por lo tanto contienen las etiquetas de las ramas. Las
6
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
7/44
filas 1..m de la última columna son los valores de las clasificaciones para lasfilas correspondientes, y por lo tanto contienen las clases que se asignan para los
nodos terminales. Es importante notar que algunos valores se pueden repetir,ya que no es forzoso que todos los m valores de cada columna sean diferentes.
Tabla 1.1 Tabla de datos típica con m observaciones.
Atributo Atributo ... Atributo Valor 1 2 n Objetivo
Nombres Atributos → A B ... N CLASE patrón 1 a1 b1 ... n1 Y 1patrón 2 a2 b2 ... n2 Y 2
... ... ... ... ... ...patrón m am bm ... nm Y m
Definición 1.2 (Partición del Conjunto de Patrones) Una instancia es una entrada o patrón en la tabla de datos. Al conjunto de todos los posibles objetos descritos mediante los atributos se les conoce como espacio de instancias D.El espacio de instancias D se particiona usualmente en dos subconjuntos: un subconjunto de instancias de entrenamiento S y un subconjunto de instancias de validación V, tales que (S ∩ V ) = ∅ y (S ∪ V ) = D. Es conveniente que el tamaño de V sea de por lo menos el 20 % del tamaño de D, porcentaje que se considera aceptable para la mayoría de los casos, aunque otras técnicas proponen porcentajes diferentes (Sección 1.5.3).
Si se toma un conjunto de datos con etiquetas, de m entradas, equivale auna secuencia de m parejas de la forma (X i, Y i), donde X i ∈ Rn , siendo nes el número de características de clasificación, y Y i ∈ Y es una etiqueta declasificación asignada al vector X i.
En la Figura 2, se tiene un espacio de instancias D que está determinadopor una sola variable. La última columna contiene el valor objetivo; entre laúltima columna y las que le preceden existe una función oculta f . Luego lafunción objetivo f es un morfismo desconocido desde cada elemento del espaciode instancias hacia una etiqueta de clasificación objetivo.
El proceso de inducción de los árboles de decisión pretenden hallar unafunción h, llamada hipótesis, que aproxime a la función f . Dado que existenmuchas funciones que pueden aproximar a f , es conveniente definir un espaciode hipótesis H adecuado, en el cual se puedan encontrar todas las posibleshipótesis que se consideren útiles para el caso particular.
Cualquier función booleana puede representarse mediante un árbol de de-cisión [Rus96]. En general, un árbol de decisión equivale a conjuntos de oracionesde implicación, con la forma de reglas Si-Entonces , en la cual se evalúan uno auno los atributos para el conjunto posible de valores que puede tomar.
Para el ejemplo de la tabla 1.1, el árbol de decisión correspondiente repre-senta expresiones de la forma:
7
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
8/44
......
-2.96374574-0.27941987
-2.96462983-0.27937055
-2.97802995-0.27862448
-2.99004805-0.27795786
Y(Valor Deseado)
X
......
2812.8251467.9419
16.691724412.7937
-0.50000184-0.7903
-0.4149258-1.3546
Y(Valor Estimado)X
En una Base de Datos:
Se Tienen Nuevos Valores para x:
Función real fOCULTA
ex + seno (1 / x)
Hipótesis h
......
?7.9419
?2.7937
?-0.7903
?-1.3546
Y
(Valor Estimado)X
......
?7.9419
?2.7937
?-0.7903
?-1.3546
Y
(Valor Estimado)X
DATOSENTRENAMIENTO
Figura 2: Ejemplo de morfismo oculto y una hipótesis (caso de regresión).
(A = a2) ∧ (N = n1) =⇒ Y 1
(B = b1) ∧ (N = n2) =⇒ Y 2
...otras conjunciones...
Esto es, el árbol de decisión se puede leer como una disyunción de con- junciones.
Sin embargo, dado un problema real pueden existir muchos árboles capacesde representarlos adecuadamente. Algunos de ellos serán mejores que otros ala hora de clasificar correctamente nuevos datos, y se podría eventualmente en-
contrar el mejor o posiblemente, los mejores árboles árboles que lo hagan: elproblema de encontrar un árbol óptimo no es de tipo polinomial sino expo-nencial; por lo tanto para problemas relativamente complejos, difícilmente o talvez nunca se podrá garantizar que se ha encontrado un árbol óptimo [Rus96].
Cuando el investigador se enfrenta al problema de tener varios árboles consimilar comportamiento, usualmente se utiliza la estrategia de Occam y se tomael árbol más pequeño (con el menor valor |T |).
1.5.1. Ventajas
Dentro del conjunto de todas las herramientas de soporte a las decisionesdisponibles actualmente, los árboles de decisión tienen algunas ventajas impor-tantes.
Los árboles de decisión son modelos de caja blanca: una vez se haobtenido un modelo, es simple obtener de él una expresión matemáticafácilmente interpretable, a diferencia de modelos de caja negra como lasredes neuronales. La expresión final tiene una lectura e interpretación muyintuitiva lo que facilita su aplicación en múltiples disciplinas.
8
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
9/44
Soportan ruido en los datos de entrada.
Permiten trabajar con pocos datos de entrenamiento: pueden sum-inistrar algunas generalizaciones útiles a partir de pequeñas cantidades dedatos.
Poco costo computacional: los algoritmos principales y más conocidospara la generación de árboles de decisión (ID3, C4.5, etc) son bastanteeficientes y consumen pocos recursos de máquina.
Herramienta integrable: finalmente, los árboles de decisión son unaherramienta que se puede combinar fácilmente con otras herramientas deminería de datos.
1.5.2. Inducción de Árboles de Decisión.
El tipo de aprendizaje que se realiza al construir un árbol de decisión cor-responde a un aprendizaje de tipo inductivo, supervisado, en el cual los datosde entrada con los que se realiza el aprendizaje, que se llaman ejemplo, dansiempre el valor esperado de la función. Para el caso de los árboles de decisión,los ejemplos son tuplas (x, f (x)) donde x es un vector de entradas y f (x) es lasalida esperada.
Como se ha mencionado anteriormente el proceso de inducción consiste enhallar, para un conjunto de datos de entrenamiento que contienen implícita-mente una función f , una función h llamada hipótesis que la aproxime lo másposible [Rus96]. La verdadera definición de f se desconoce, y existen por lo gen-eral muchas opciones para elegir h, cada una de ellas consistente con el conjuntode datos de entrenamiento. Cualquier preferencia por alguna hipótesis en partic-ular, más allá de esta consistencia, constituye un sesgo en el proceso inductivo,
y se conoce como predisposición. Para presentarlo de manera matemática sedeben establecer primero unas definiciones: Se llamará D al conjunto completode instancias o patrones.
Definición 1.3 (Hipótesis Consistente) Una hipótesis h se dice consistente con un conjunto de datos de entrenamiento S para la función objetivo f , si y solo si h(x) = y para cada tupla (x, y) ∈ S.
Definición 1.4 (Error de Clasificación) Para una muestra de datos D de tamaño m, compuesta por tuplas (x, y) ∈ D, si una hipótesis h genera i clasifi-caciones incorrectas, entonces el error de clasificación de la hipótesis h se puede
determinar como eh = i
m. Por tanto, 0 ≤ e ≤ 1.
Una hipótesis consistente debe tener un error de clasificación de 0, aunqueesto no se pueda obtener en casos reales debido al ruido presente en los datosde entrada. Nótese además que se pueden definir otros tipos de medidas paradeterminar el error de clasificación.
Dada la estructura general de un árbol de decisión, la manera más conve-niente de construir un árbol de decisión se basa en un algoritmo clásico que
9
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
10/44
emplea búsqueda descendente (top-down ) y egoista en el espacio de búsquedade los posibles árboles de decisión.
El algoritmo general de construcción de un árbol se puede expresar de di-versas maneras [Joa07] [Gue04], [Mit97]. Una versión simplificada se observa enel algoritmo 1.1, tomado de [Mit97].
El interrogante que surge en este momento tiene que ver con el criterio quese utiliza para ejecutar la línea del algoritmo: “seleccionar el mejor atributo pdel siguiente nodo”. En el caso de que se esté comenzando a construir el árbol,se trata entonces de seleccionar cual debe ser el nodo raiz.
Los algoritmos ID3 y C4.5 de Quinlan son dos ejemplos de criterios paraseleccionar los nodos de un árbol de decisión. La explicación que se expone acontinuación se basa en el algoritmo ID3. Para seleccionar cada nodo, comen-zando desde el nodo raíz, el algoritmo ID3 se pregunta: ¿Qué atributo es elmejor clasificador?
La respuesta a este interrogante se halla tomando independientemente cadauno de los atributos, y verificando qué tan bien clasifica él solo a los datos delconjunto de entrenamiento S . El atributo que mejor los clasifique es tomadocomo el nodo raíz; y el árbol se seguirá generando con la misma concepciónhasta finalizar. Los posibles valores que puede tomar el atributo seleccionadoconforman las nuevas ramas que parten de este nodo hacia abajo [Gue04].
Los ejemplos de entrenamiento son repartidos en los nodos descendientes,de acuerdo con el valor que tengan para el atributo de la raíz. Es decir, seconsideran para una determinada rama únicamente los ejemplos que coincidencon el valor del atributo de la raiz especificado en la rama.
Algoritmo 1.1 (ID3 Versión Simplificada)Id3(S, C, A )
Ejemplos: Conjunto de patrones de entrenamiento (S ).Clase: valor a predecir (C ).Atributos: conjunto de atributos para verificar durante aprendizaje (A)
1. Crear raiz para el árbol de decisión 2. Si todos los ejemplos son de clase C i entonces3. devolver raiz con etiqueta C i.4. Si A = ∅ entonces5. devolver ráız con C k = etiqueta más común en S .6. En otro caso7. Aj ←− atributo en A mejor clasificador (criterio de entropía .)8. raiz ←− Aj9. Para cada posible valor vi de Aj10. Adicione rama debajo de raiz, para prueba Aj = vi.
11. sea S vi,Aj ⊂ S patornes con valor vi para atributo Aj.12. si S vi,Aj = ∅ entonces13. agrege debajo nodo con C k = etiqueta más común en S .14. si no es vacío, entonces15. bajo rama agrege subárbol: Id3(Svi,Aj , C, A − Aj)16. Fin.
10
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
11/44
17. Devuelve raiz.
El algoritmo ID3 utiliza los trabajos desarrollados por Shannon para de-cidir cual es el mejor atributo en cada etapa de inducción del árbol. El métodoconsidera la ganancia en información que es capaz de proveer cada atributo.
Dado un atributo vi, su probabilidad de ocurrencia es p(vi). De acuerdo conlos trabajos de Shannon, la cantidad de información o entropía asociada a esteatributo es:
Entroṕıa(S ) =ni=1
p(i)log2
1
p(i)
Es conveniente cuantificar el costo de representar cada entrada de datos de
entrenamiento mediante la cantidad de bits de información que se requierenpara describirla. Cada bit tiene dos estados posibles, y es por ello que la teoríade la información utiliza logaritmos en base 2 para calcular la entropía.
La entropía cuantifica de alguna manera la cantidad de ruido, desorden oimpureza que tienen los patrones de una colección de patrones o de un sis-tema completo. Mientras más entropía tiene un sistema, más desordenado es, ymientras menos entropía se puede decir que presenta un patron más claro.
La heurística del algoritmo ID3 utiliza el concepto de entropía para selec-cionar el órden en que aparecen los atributos en el árbol. La heurística debehallar el atributo que reduzca en mayor cantidad la entropía del conjunto dedatos, logrando de esta manera que se reduzca la cantidad de información nece-saria para describir completamente cada entrada del conjunto de datos de en-trenamiento. En otras palabras, se busca el atributo que provea mayor ganancia
G, para un conjunto de datos de entrenamiento S y un determinado atributo A:
G(S, A) = Entroṕıa(S ) − v∈A
|S v|
|S | Entropia(S v)
donde |S v| es el subconjunto de S para los cuales un atributo A toma el valorv, y el valor |S |
El atributo que ofrecerá una mayor ganancia de información es aquel quemás reduzca la entropía del conjunto de datos. De todos los atributos posibles,el que más ganancia de información ofrezca será seleccionado como nodo raíz, yasí sucesivamente.
De esta manera, el algoritmo ID3 realiza el proceso de búsqueda en el espaciode hipótesis H , encontrando en este proceso la hipótesis que mejor ajusta a losdatos del conjunto de entrenamiento S . A medida que el árbol se va llenando,la hipótesis h es cada vez más compleja.
Sin embargo, en el ID3 se presenta sesgo inductivo o preferencia en la búsque-da en los aspectos siguientes:
11
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
12/44
Hipótesis compactas: ID3 tiene preferencia por árboles pequeños sobreárboles grandes, intentando asegurar que la búsqueda termine siempre lo
más cerca posible a la raíz.
ID3 es un algoritmo egoista, de búsqueda primero en profundidad.
De acuerdo con estos aspectos mencionados, es claro que ID3 no intentaexplorar todo el espacio de búsqueda. Por lo tanto, se puede discutir si ID3generaliza más allá de los datos observados. Otra pregunta fundamental es siel árbol encontrado es el menos parsimonioso posible. Dada la complejidad delproblema, que es exponencial, los costos de averiguarlo pueden ser prohibitivosen tiempo y recursos de máquina.
Por otra parte, existe la posibilidad de que el árbol encontrado medianteel algoritmo ID3 sea sobreajustado, y por lo tanto más que generalizar hayamemorizado.
Definición 1.5 (Sobreajuste) Dado un espacio de hipótesis H , se dice que h ∈ H está sobreajustado a los ejemplos de entrenamiento, si existe una hipótesis alternativa h ∈ H tal que h tiene error de clasificación menor que h para los patrones de entrenamiento, pero h tiene un error de clasificación mayor que h
para la distribución completa de los ejemplares del problema, esto es:eh < eh con los patrones de entrenamiento S.eh > eh con todos los patrones D.
Por lo tanto, al evaluar h con el conjunto de datos de validación V , es quese conocerá si hay sobreajuste. El sobreajuste se puede producir por diversosfactores, uno de ellos es la presencia de ruido en los datos y el ajuste del árbola presencia del ruido. Pero tal vez la principal fuente de sobreajuste es disponer
de un conjunto de datos de entrenamiento S pequeño: mientras menos datos setengan para entrenamiento, más fácil es que un modelo aleatorio cualquiera seajuste a estos datos, a la vez que tiene un comportamiento pobre con los datosde validación.
1.5.3. Algunos Métodos de Validación para Reducir el Sobreajuste.
La técnica común de dividir el conjunto de datos en datos de entrenamientoy datos de validación, reduce el conjunto de datos de entrenamiento y por ellocontribuye de cierta manera al sobreajuste.
Existen diferentes técnicas para reducir el sobreajuste, entre ellos está lapoda del árbol. Para ello, se considera cada nodo del árbol como candidato aser eliminado, y se observa el impacto de esta eliminación en el comportamiento
general del árbol. El nodo se elimina solo si el árbol podado se comporta igual omejor que el original [Rus96]. La técnica de poda del árbol es sin embargo costosaen recursos de computación. Por ello, se proponen otras técnicas para reducir elsobreajuste: la validación cruzada y la validación dejar-uno-fuera (leave-one-out validation).
12
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
13/44
Definición 1.6 (Técnica de la Validación Cruzada) Sea S el espacio de datos de entrenamiento, y sea P una partición de S en K subconjuntos de
igual tamaño. El método de la validación cruzada consiste en que para cada P i,1 ≤ i ≤ K, se realiza el entrenamiento con la unión de los K − 1 subconjuntos restantes, y empíricamente se determina el error ei en el conjunto P i, definidocomo la relación entre los errores de clasificación y el número de patrones en P i (ver definición 1.4). El error final que devuelve es el valor promedio de todos los ei.
En esta técnica se entrena y se evalúa con un conjunto diferente cada vez. Elerror final esperado de la iteración de aprendizaje deberá ser el valor promediode todos los ei.
Definición 1.7 (Técnica Leave-One-Out ) Sea S el espacio de datos de en-trenamiento, y sea P una partición de S en |S | subconjuntos. El método de la
validación cruzada consiste en que para cada P i, 1 ≤ i ≤ |S | , se realiza el entre-namiento con la unión de los |S | − 1 subconjuntos restantes, y empíricamente se determina el error ei en el conjunto P i, definiendo ei = 1 si hubo error y ei = 0si no lo hubo. El error final que devuelve es
e =
|S |i=1 ei|S |
.
La técnica dejar-uno-fuera toma todos los datos excepto uno para entre-namiento, y valida con el único dato disponible para validación. Cada vez setoma un patrón de validación diferente, repitiendo hasta que ha validado concada uno de los datos disponibles.
Las dos técnicas mencionadas son costosas computacionalmente, en partic-ular la técnica leave-one-out, pero esta última reporta mayores beneficios a lahora de reducir el sobreajuste. Sin embargo, en la sección siguiente se definen loselementos básicos de una técnica que teóricamente puede ayudar en el procesode generación y selección de un buen árbol de decisión.
1.6. Programación Genética
A la hora de definir un algoritmo de inducción para un árbol de decisión,bien sea el ID3, el C4.5 o muchos otros, se puede estar definiendo un sesgoinadecuado en la búsqueda de la hipótesis h.
Uno de los ingredientes que se han considerado a la hora de elaborar lasmetodologías de aprendizaje automático es la necesidad de la intuición humanaen el análisis de datos. Algunos desarrolladores de sistemas de aprendizaje au-tomático la intentan eliminar, mientras que otros desarrolladores la incorporanal tomar una aproximación colaborativa para la interacción hombre-máquina.Sin embargo, si se considera que el Ingeniero de Conocimiento debe especificaraspectos vitales como por ejemplo la representación de los datos y los mecanis-mos de búsqueda de patrones, se llega a la conclusión de que el factor humanoy por tanto la intuición, no se puede eliminar totalmente [Mar87].
13
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
14/44
La programación genética (PG) [Koz92] proporciona una técnica para re-ducir sustancialmente algunos sesgos propios de la orientación algorítmica o
heurística de la solución. Se basa en reproducir computacionalmente algunastécnicas propias de la naturaleza que resultan en una mejor exploración desoluciones dentro de todo el espacio de búsqueda posible para un problemadeterminado.
La PG es una extensión de la técnica de los algoritmos genéticos, dondelos individuos que evolucionan son estructuras de tipo árbol que pueden mode-lar muchos tipos de problemas diferentes. Los árboles que evolucionan puedenrepresentar expresiones matemáticas, programas de computador, secuencias depasos para realizar una labor cualquiera, etc.
Mediante técnicas como la PG, se reduce sustancialmente el sesgo inadecuadoen la exploración del espacio de búsqueda de una solución. Estas técnicas evitanque el programa se quede examinando exclusivamente alguna zona del espaciode búsqueda: se produce una exploración más general del mismo, si bien porrazones obvias de complejidad y tiempo computacional no se explora todo elespacio de búsqueda.
Al igual que los árboles de decisión, la PG es un modelo de caja blanca:la solución que se halla es expresable, y en caso de tener una complejidad al-ta, se puede en muchos casos simplificar utilizando metodologías adecuadas depostprocesamiento de datos.
Desde el punto de vista comparativo con la biología, la PG tiene preferen-cia por algunas de las características del pensamiento neo-darwiniano, que haresumido Mayr [May88] y se presentan a continuación. Este grupo de carac-terísticas participan en la constitución del marco de la programación genéticaen general:
El individuo es el objetivo primordial de la selección.
La variación genética es en gran medida un fenómeno aleatorio: los pro-cesos estocásticos juegan un papel significante en la evolución.
La variación genotípica es principalmente un producto de la recombi-nación, y en últimas de la mutación.
La evolución gradual puede incorporar discontinuidades fenotípicas.
No todos los cambios son necesariamente consecuencias de selección nat-ural ad hoc.
La evolución es un cambio en adaptación y diversidad, no simplemente uncambio en las frecuencias de los genes.
La selección es probabilística, no determinística.
Los diferentes desarrollos de PG comparten gran cantidad de propiedadescomunes con los modelos biológicos de la evolución::
14
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
15/44
La PG utiliza procesos de aprendizaje colectivo de una población de indi-viduos. Cada individuo representa o codifica uno de los puntos del espacio
de búsqueda de las soluciones potenciales de un problema.
Los descendientes son individuos generados por procesos aleatorios quepretenden emular la mutación y el cruce. La mutación se puede asimi-lar a un proceso de autoreplicación errada, en la cual cambios pequeñostienen mayor probabilidad de ocurrir que los cambios grandes. El cruceintercambia información entre (usualmente) dos individuos.
Mediante la evaluación de los individuos en su ambiente, se puede asignarun valor de calidad o aptitud a cada uno de los individuos. El mínimo re-querimiento es que los valores de aptitud sean comparables, de tal maneraque se pueda conocer cual es mejor. De acuerdo con la medida de apti-tud, el proceso de selección favorece los mejores individuos para que se
reproduzcan más a menudo que los peores.La fortaleza de la metodología de la PG radica, entre muchos otros factores,
en la diversidad y diferencias entre los individuos. Esa diversidad facilitaque se explore mejor el espacio de búsqueda, y que durante el proceso evoluti-vo el sistema converja adecuadamente, es decir que se encuentre un individuosatisfactorio.
Cuando por algún motivo los individuos de la población van perdiendo di-versidad, por ejemplo cuando los buenos individuos dominan excesivamente laevolución, se habla de convergencia prematura. Si este es el caso, el procesoevolutivo puede quedar atrapado en un mínimo local y no se obtiene el resultadoesperado, siendo necesario reiniciar el proceso.
1.6.1. Generalidades de la PGA continuación se van a examinar los elementos principales que intervienen
en la técnica de la PG, con el fin de conocer algunos aspectos conceptuales gen-erales importantes. Se expondrán algunas definiciones, por sencillas que parez-can, con el fin de hacer claridad en el uso de la terminología. En esta secciónse tratarán los aspectos generales, mientras que detalles adicionales que han dedefinir los algoritmos se especifican en la sección 2.2.
Se denomina población a un grupo de individuos que pueden interactuar juntos. Cada individuo es una solución potencial a un problema y su estructuraen PG es de tipo árbol n-ario (figura 5). La principal manera en que interactuanlos individuos es en los procesos de competencia entre ellos (torneo), y el losprocesos de creación de una nueva generación. El ambiente o entorno es todo
aquello que rodea a un individuo, y lo presiona de cierta manera al verificar sitiene el comportamiento esperado.El genotipo denomina a la composición genética de un individuo y que
define sus potencialidades; en PG el genotipo determina la representación delproblema en la estructura propia del individuo, el árbol. Por otra parte, elfenotipo denomina los rasgos observables del individuo. Durante el proceso
15
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
16/44
evolutivo en PG, debe existir una función que permita observar el fenotipo aque da lugar un determinado genotipo. La capacidad de computación actual
permite que en PG esta función sea la más simple posible, ya que se puedeoperar de manera eficiente con estructuras computacionales complejas que seasemejan mucho al problema real y requieren la menor cantidad de codificación.(esto no vale para todas las técnicas, ya que por ejemplo los algoritmos genéticossí requieren una alta codificación del problema).
Desde el punto de vista del ambiente, la aptitud de un individuo es unafunción que permite evaluar su comportamiento, esto es, verificar en qué pro-porción cumple con determinadas habilidades y qué tan bueno es con respectoa los demás. Para el interés del propio individuo, la aptitud se define comola probabilidad de que el individuo viva y sea seleccionado para reproducirse(viabilidad), o también como una función del número de descendientes queeste tiene (fertilidad del individuo). En la terminología de koza [Koz92], sedenomina paisaje de aptitudes ( fitness landscape ) a la hipersuperficie obtenidaal graficar la función de aptitud aplicada a cada punto del espacio de búsquedaexplorado.
La selección es el proceso mediante el cual algunos individuos de la poblaciónson seleccionados para reproducirse. Este proceso se lleva típicamente medianteuna combinación de técnicas aleatorias y probabilísticas. Dentro de los tipos deselección, se pueden resaltar dos de ellos que son la selección dura y la selecciónblanda. La selección dura solo permite que los mejores individuos se manten-gan para conformar una nueva generación. La selección blanda tiene lugarcuando se utilizan métodos probabilísticos que de alguna manera permiten queindividuos de aptitud baja también participen en la formación de una nuevageneración.
Se llama generación a cada iteración que obtiene una nueva población al
aplicar operadores evolutivos. Una nueva generación implica una nueva medi-da de la aptitud (fig 3). Los operadores evolutivos que se trabajarán aquí sonprincipalmente tres: operador de cruce, de clonación y de mutación, si bien elproceso de selección también es considerado como un operador genético. Eloperador de cruce forma un nuevo cromosoma (individuo en PG) combinandopartes de cada uno de los cromosomas (individuos) padre. El operador de mu-tación forma un nuevo individuo mediante alteraciones aleatorias de parte dela estructura del individuo padre. El operador de clonación crea una réplicadel padre en la nueva generación. Este operador es la base del elitismo, que esuna técnica que garantiza que el mejor individuo (o los mejores individuos) decada generación, pase a la generación siguiente sin modificaciones, asegurandoque la aptitud máxima obtenida en la población nunca decrezca.
Estos elementos descritos se pueden ver de manera gráfica en la figura 3.
De manera más formal Bäck y otros autores han definido algunos de loselementos que conforman el marco de trabajo para PG así [Bac00]:
Notación 1.2 Sea I el espacio arbitrario de todos los individuos a ∈ I.
Sea F : I → R una función de aptitud para los individuos.
16
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
17/44
Población Inicial(Generación Aleatoria):
Aplicar Función deAptitud (Evaluación)
OperadoresEvolutivos
Nueva Generación:
¿Alguno CumpleCondición
Aptitud=UMBRAL?
*
cos +
x 7 x
+exp seno
x /
x1
+exp tan
*
3x
+
tanx
3
+
exp seno
x /
x1
*
invm
senh
*
3x
+
lnx
3
invm
+
lnx
3
Figura 3: Esquema gráfico del proceso evolutivo en PG
Sea µ el tamaño de la población de padres.
Sea λ el tamaño de la población de hijos.
Sea P (t) = (a1(t), a2(t),...,aµ(t)) ∈ I µ una caracterización de la población en la generación t.
Sean s : I λ
→ I µ
, m : I κ
→ I λ
, r : I µ
→ I κ
operadores evolutivos de selección, mutación y cruce respectivamente.
Sean θι, θr, θm, θ conjuntos de parámetros para condiciones de terminación,de los operadores de cruce y mutación y generales.
Es importante notar que para el caso del presente trabajo, se puede tenera convenciencia µ = λ = κ. El diagrama de flujo general de la PG se observaen la figura 4, mientras que [Bac00] propone un algoritmo en pseudocódigo conalgunas modificaciones, tal como aparece en el algoritmo 2.1.
La población está conformada por individuos o árboles, cuya aptitud debeser medible por el entorno. Lo que se exige en primera instancia, es que la estruc-tura del árbol sea sintácticamente correcta para modelar el problema deseado,y que esa corrección sintáctica se mantenga a medida que progresa la evolu-
ción. Además, en cualquier algoritmo de PG es importante tener en cuenta dosaspectos muy importantes:
1. La aptitud de la nueva generación debe estar relacionada con la aptitudde la generación de padres. Si esto no fuera así, el proceso degeneraría enuna búsqueda aleatoria.
17
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
18/44
Generación = 0
¿Cumple CriterioTerminación?
Individuo = 0
¿Individuo = M ?
Evaluar Aptitud deCada Individuo
Crear PoblaciónInicial
SeleccionarProbabilísticamenteOperador Genético
Seleccionar Dos IndividuosProbabilísticamente y por Aptitud
(Torneo)
Individuo = Individuo +1
Realizar Cruce
Insertar NuevosIndividuos en Nueva
Población
Individuo = Individuo +1
Seleccionar Un IndividuoProbabilísticamente y por Aptitud
(Torneo)
RealizarReproducción
RealizarMutación
Insertar NuevosIndividuos en Nueva
Población
No
No
Clonación / Mutación Cruce
MutaciónClonación
Generac ión = Gene ración + 1 S i
GenerarResultado
Si
Fin
Figura 4: Diagrama de flujo para la PG (Modificado de [Koz92])
18
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
19/44
E
B
D
b 2
b 1
1 3 2
d 1
d 3
2 3
e 1
e 2
Si B=b1 y D=d1 entonces 1OSi b=b1 y D=d2 entonces 3OSi B=b1 y D=d3 entonces 2OSi B=b2 y E=e1 entonces 2OSi B=b2 y E=e2 entonces 3
Regla:
Figura 5: Ejemplo de árbol de decisión representado en PG.
2. Cualquier variación heredable puede ser introducida en la aptitud de lanueva generación. Si no fuera así, no sería posible un mejoramiento con-tínuo en la búsqueda de un óptimo.
Al igual que en los árboles de decisión, los individuos de la población en PGson árboles con nodos internos, ramas y nodos terminales. En el caso general, losnodos internos de un árbol en PG representan funciones, y las ramas enlazan conotros nodos hijos que son los diferentes argumentos que puede tener una funcióndeterminada; los nodos terminales representan ya sea constantes o variablesque toman su valor de los datos de entrada (que se lee en el momento de la
verificación de la aptitud del individuo, de validación o en la aplicación final).Los nodos y ramas de un árbol de PG puede representar objetos muy diferentes.En la figura 5 se observa un árbol que representa una árbol de decisión típico.
Los nodos terminales y no terminales se construyen a partir de un conjun-to de funciones llamadas funciones primitivas, que pueden por ejemplo fun-ciones matemáticas típicas o funciones construidas a gusto del diseñador. Elsistema evlutivo debe construirse de tal manera que cumpla con el requisitode clausura [Koz92], que especifica que un nodo terminal acepte cualquier val-or posible del conjunto de datos de entrada, y que un nodo no terminal aceptede los nodos hijo cualquier valor que ellos puedan suministrar y que utilice elsistema.
Generación de la Población Inicial. Una característica propia de la PGes la metodología que sigue para generar los individuos y evolucionarlos, esque que se basa en todo momento, en métodos probabilísticos. Para generar lapoblación inicial, se define previamente un tamaño de población m, cuyo valorrecomendado varía de acuerdo con diferentes factores entre ellos la complejidaddel problema. Un valor típico de m puede estar en el rango comprendido de 300
19
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
20/44
a 500 individuos. Luego, se comienza a crear lo que se llama población inicialdonde cada uno de los m individuos es generado de manera aleatoria en buen
grado.De manera resumida se puede ver que el proceso de generación de cada indi-
viduo de la población inicial consiste en establecer probabilísticamente los tiposde nodo (terminales y no terminales), escoger probabilísticamente las funcioneso tipos de nodo terminal según corresponda, y así sucesivamente hasta com-pletar el individuo con nodos terminales. El algoritmo se puede observar en lasección 2.2.
Datos de Entrenamiento y Validación. Todo sistema de aprendizaje au-tomático requiere un conjunto de valores de entrenamiento o aprendizaje S .Para el caso de la PG, la filosofía es la misma que para la inducción de árbolesde decisión: se dispone de un conjunto de datos D, del cual se toma un sub-
conjunto S para entrenamiento y un subconjunto V para validación, tal quecumplan con la definición 1.2.
Evaluación de los individuos. Una vez que se ha generado la población, yse dispone tanto del conjunto de datos de entrenamiento y validación, el pasosiguiente consiste en evaluar los individuos para verificar qué tambien ajustana los datos. Esta medida se llama medida de aptitud. Esta medida debe sercapaz de evaluar cualquier individuo posible que se encuentre en la población,con cualquiera de los datos disponibles.
Para ello, se toma cada uno de los individuos y se les suministra como entradacada una de las entradas en S . Para cada individuo, se calcula el error cometidoal evaluarlos con todas las tuplas de datos en S . Las diferentes maneras decuantificar el error nos dan diferentes medidas posibles de aptitud.
Operadores Evolutivos. Los operadores evolutivos son principalmente: se-lección, cruce, mutación y clonación. Se pueden definir nuevos operadores evo-lutivos de acuerdo con la conveniencia del investigador.
En la reproducción, un individuo es seleccionado probabilísticamente, deacuerdo con su aptitud, para ser replicado en la nueva generación.
En la mutación, un individuo es seleccionado probabilísticamente de acuerdocon su aptitud. Aleatoriamente se selecciona un nodo cualquiera del árbol, difer-ente del nodo raiz. Todo el subárbol que se encuentra bajo el nodo seleccionadose elimina, y su lugar es reemplazado por un nuevo árbol generado probabilís-ticamente, de la misma manera como se genera cualquier árbol de la poblacióninicial. El nuevo individuo obtenido pasa a formar parte de la nueva generación(Figura 6).
En el cruce, que se puede observar en la figura 7, la diferencia consiste enque se seleccionan dos individuos. En cada uno de ellos, se selecciona alatoria-mente un nodo no raiz. Los subárboles ubicados bajo cada nodo seleccionado seintercambian. Los dos individuos resultantes pasan a formar parte de la nuevageneración.
20
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
21/44
E
B
D
b 2 b 1
1 2 3
d 1
d 3
1 3
e 1
e 2
E
B
D
b 2
c 1
1 2 3
d 1
d 3
1 3
e 1
e 2
C
E
c 3
c 2
b 1
1 2
e 1
e 2
1
PUNTO DEMUTACION
NUEVAGENERACIÓN
HIJO
GENERACIÓNACTUAL
X
x
1
Nodo con atributo X
x=Resultado de evaluar X
Clasificación
PADRE SELECCIONADO
ARBOLNUEVO
Figura 6: Mutación de un árbol de decisión.
Elitismo. Un concepto importante en la evolución artificial es el elitismo. Sepuede pensar que no tiene mucho sentido que se pierda el mejor individuo al crear
una nueva generación, ya que muy posiblemente ha sido el fruto de un procesoevolutivo y el sistema debería posiblemente trabajar mucho para obtener unindividuo similar. Siendo así, las evoluciones artificiales consideran típicamentereplicar o clonar el mejor individuo de una generación, en la generación siguiente.
Selección de Individuos. La selección de los nuevos individuos se puederealizar mediante estrategias diferentes; en el presente trabajo se consideraráúnicamente la selección por torneo. La literatura de PG básica, por ejemplo[Koz92] compendia algunas técnicas principales de selección, aunque existendiferentes variantes para implementarlas:
1. Selección Proporcional ( fitness proportionate ): los individuos se eligende acuerdo con la contribución de su aptitud respecto de la aptitud total
de la población. Esta técnica tiene diferentes implementaciones: La téc-nica de la ruleta, la técnica del sobrante estocástico, la técnica universalestocástica, y la técnica del muestreo determinístico. Sin embargo, se debetener en cuenta que si existe una supersolución en la población, esto es,un individuo excepcionalmente bueno con respecto a todo el resto de in-vididuos, una selección basada en la aptitud escogerá muy probablemente
21
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
22/44
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
23/44
la misma solución; la población perderá rápidamente diversidad y se ten-drá una convergencia pramatura hacia una solución subóptima.Por otra
parte, si en la selección proporcional todos los individuos tienen aptitudesmuy parecidas, el proceso se asemeja a una selección aleatoria. El méto-do proporcional trata de evitar estos problemas utilizando un esquema deescalamiento y mapeo de la aptitud de cada individuo predefinido [Gol89].
2. Selección por Torneo: El torneo consiste en seleccionar aleatoriamentedos o más individuos, y hacerlos competir con base en la aptitud de cadauno. El que tenga la mejor aptitud, es seleccionado.
El método del torneo ayuda a evitar en gran parte uno de los proble-mas que puede enfrentar la PG simple: la convergencia prematura.Mediante la realización del torneo, cualquier individuo, incluso un mal in-dividuo, puede participar en la nueva generación (esto es garantizado porla selección aleatoria inicial de los dos individuos). Si los individuos uti-lizados para crear una nueva generación se seleccionaran únicamente conbase en la aptitud, al cabo de unas cuantas generaciones se tendría unapoblación excesivamente homogénea, conformada por individuos idénticoso muy parecidos, usualmente los mejores individuos encontrados en lasprimeras evoluciones.
Se tienen 2 métodos para aplicar la selección mediante torneo:
a ) El método determinístico: se escoge el número de invididuos a se-leccionar, se eligen estos de manera aleatoria y luego se comparancon base en la aptitud. Este esquema puede manejar tanto proble-mas de minimización como de maximización sin necesidad de cambiosestructurales en la función de aptitud, además de poderse paralelizar
fácilmente [Bac00].b) El método probabilístico: similar al anterior, excepto que se generanvalores aleatorios que tendrán mayor probabilidad de seleccionar elindividuo más apto.
Una característica de la PG es que utiliza intensivamente métodos aleatoriosy métodos probabilísticos. En diferentes procedimientos se deben generar aleato-riamente, valores de un tipo y un rango seleccionable por parte del usuario.
En el caso de la selección de un individuo para aplicar un operador genéticopor ejemplo, PG realiza lo que se denomina torneo. Selecciona aleatoriamenteun individuo y luego otro, y los pone a competir. Para ello, genera un númeroaleatorio entre 1 y el tamaño de la población. El entero retornado indica cual esel primer individuo seleccionado. Repite el proceso, cuidando de no seleccionar
el mismo individuo. Una vez que se tienen los dos individuos para el torneo,se pueden aplicar varios métodos para determinar cual es el ganador: uno deellos consiste en competir directamente basados en la aptitud. El otro métodoconsiste en normalizar las aptitudes en la escala (0, 1) para luego hallar un valoraleatorio entre 0 y 1. El individuo que corresponda al rango donde cae el valoraleatorio, es el individuo seleccionado.
23
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
24/44
Otro caso similar ocurre cuando se trata de seleccionar cual operador evo-lutivo aplicar al individuo. Cada operador evolutivo tiene una probabilidad de
ocurrencia ubicada en el rango [0, 1]. En todo caso, la suma de las probabilidadesconsideradas debe ser 1. Se segmenta el intervalo [0, 1] y a cada probabilidad sele asigna un segmento dentro de ese valor (tal como una ruleta). Se genera unvalor aleatorio, y se verifica a qué operador evolutivo corresponde el intervalodonde cae dicho valor, para retornarlo como operador seleccionado.
Ejemplo 1.1 Este ejemplo utiliza el método de la ruleta para seleccionar un operador evolutivo. Si P X = Prob. de Cruce, P C = Prob. de Reproducción oClonación y P M = Prob. de Mutación, entonces si se tienen los valores para las probabilidades: P X = 0,95, P C = 0,03, P M = 0,02. Los rangos se pueden establecer: cruce = 0 − 0, 95; clonacion = 0,95 − 0, 98; mutación = 0,98 − 1. Si es el caso que por ejemplo, se genere un valor aleatorio de 0, 961, entonces el operador seleccionado es la clonación.
Para seleccionar individuos el proceso es análogo, pero en este caso se tra-baja con un valor de probabilidad del individuo i, que se puede llamar P i y cuyovalor está asociado a la aptitud del mismo. Una vez asignados los valores de probabilidad para cada individuo de la población, o para cada individuo que par-ticipa en un torneo, el programa continúa de manera similar a la que se acaba de mostrar.
Criterio de Terminación. La población continuará evolucionando hastatanto no se cumpla un criterio que nos diga o bien que ha pasado una cantidadde generaciones excesiva, o se ha logrado un individuo que aproxima suficiente-mente bien al conjunto de datos de entrenamiento y validación. En cualquierade los dos casos, el programa devuelve el mejor individuo encontrado hasta el
momento.
24
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
25/44
2. Generación de Árboles de Decisión con PG.
En este capítulo se va a explorar una técnica que combinan la aplicación deárboles de decisión, los cuales van a ser generados mediante técnicas de GP:Por una parte, se aplican los árboles de decisión como una representación de unconjunto de reglas que se pueden extraen de unos datos de entrenamiento. Porotra parte, se trata de utilizar la programación genética como mecanismo paragenerar y buscar un buen árbol; esto es, un árbol que represente un conjuntode reglas que clasifiquen correctamente los datos de entrenamiento, validacióny los nuevos datos que lleguen.
Bajo esta perspectiva, se reducen o eliminan sustancialmente algunos de losproblemas inherentes a los árboles de decisión utilizando algoritmos como el ID3o C4.5. Por ejemplo, se reduce el sesgo inductivo, por cuanto la programacióngenética explora más libremente.
Existen trabajos en esta área, tanto teóricos como de aplicación práctica, porejemplo [Llo07] quienes presentan alguna teoría y aplicaciones con el algoritmoGALE (Genetic and Artificial Life Environment ) para evolución paralela deárboles de decisión. En [Dim06] se presenta una propuesta de técnicas evolutivaspara construir árboles de decisión generalizados.
El esquema que se va a trabajar es el de generar un diseño conceptual de unsistema evolutivo que permita trabajar con árboles de decisión, que incorpore lastécnicas básicas, aunque tenga posibilidad de crecimiento futuro. Al incorporarla menor cantidad de heurísticas posibles, se espera observar el proceso evolutivode los árboles en condiciones de máxima “libertad” posible.
2.1. Tamaño del Espacio de Búsqueda
A continuación se propone una manera de estimar el tamaño del espaciode búsqueda para la solución de problemas mediante árboles de decisión paraatributos binarios. La expresión se ha desarrollado inductivamente. Ello se basaen algunos supuestos:
1. Inicialmente se supone, por simplicidad, que todos los atributos son detipo binario.
2. Cada árbol se puede llenar con plena libertad. Esto incluye, al menosteóricamente, que se puedan generar árboles con un único nodo, el nodoraíz, y que obviamente su valor debe corresponder a uno de los valores declasificación.
3. Se supone que se tiene una tabla de patrones, y que en ella se identifi-can |A| atributos diferentes. Cada uno de ellos puede tener una cantidaddiferente de valores posibles para sus atributos. Sea vAi el conjunto de losvalores que puede tomar un atributo Ai, y sea |vAi | la cantidad de dichosatributos.
4. Sea rL la cantidad de ramas por nivel L. Para el nivel 0 se toma r0 = 1,y para los nodos siguientes, se toma r1 = 2, r2 = 4.
25
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
26/44
5. Para el primer nivel, el nodo raíz, se tienen |A| +T̂
maneras distintas,
dondeT̂ es la cantidad de tipos de nodo terminal que se dispone.
6. El nivel máximo que puede alcanzar el árbol, sin repetir atributos enun recorrido cualquiera es |A| , siendo el nodo raiz el nodo 0. Las opcionespara escoger un nodo determinado en cada nivel L son de:
|A| − L +T̂
Mientras que las opciones para llenar desde el nodo raiz hasta los nodosde un nivel L, dada una selección previa del nodo raíz, son de:
(|A| − (L − 2))L! ·
|A| − (L − 1) +T̂ rL−1
7. La cantidad aproximada de árboles puede estimarse como 2L! · 3rL−1 ·
|A| +T̂
. Esto no indica que sean árboles diferentes, ya que muchos dedichos árboles serán equivalentes entre sí, disminuyendo la cantidad deárboles diferentes. Sin embargo, esta expresión da una idea aproximadade la magnitud del espacio de búsqueda.
Ejemplo 2.1 Se dispone de 2 atributos binarios y 2 clasificaciones posibles. Se desea calcular cuantos árboles distintos se pueden generar.
Se tiene |A| = 2, el nivel máximo P = 2,T̂ = 2.
Para llenar el nodo raíz L = 0 se dispone de |A|+T̂ = 4 opciones. Además
r0 = 122! ∗ 32 ∗ 2 + 2 = 74
Ejemplo 2.2 Se dispone de 3 atributos binarios y 2 clasificaciones posibles. Se desea estimar cuantos árboles distintos se pueden generar.Se tiene |A| = 3, el nivel máximo P = 3,
T̂ = 2.Para llenar el nodo raíz L = 0 se dispone de |A|+
T̂ = 5 opciones. Además r0 = 1
23! ∗ 34 ∗ 3 + 2 = 15554
Estos ejemplos muestran como el espacio de búsqueda crece enormementecon pequeños cambios en la cantidad de atributos o de clases. En los ejemplosde esta sección se han considerado además que todos los atributos tienen valoresbinarios, lo que reduce además el espacio de búsqueda, si bien en los problemasreales es común que se encuentren atributos que pueden tomar 3 o más valores.
La aridad de las funciones, en la expresión que se ha utilizado para la estimación,afecta los exponentes y por tanto tiene un impacto alto en la cantidad de árbolesque se pueden encontrar. Es por ello que la búsqueda o verificación del mejorárbol no puede hacerse de manera exhaustiva en casos reales, por el alto costocomputacional que ello implica.
26
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
27/44
2.2. Aplicación de la PG a los Árboles de Decisión.
Como todo problema abordado mediante la técnica de la PG, la generaciónde árboles de decisión mediante requiere definir lo siguiente:
1. Seleccionar el mecanismo de representación de los árboles de decisión enPG..
2. Conjunto de nodos terminales. Estos corresponden a las diferentes clasesque se pueden extraer de la tabla de patrones de entrada.
3. Conjunto de Nodos no terminales. Estos corresponden a los diferentesatributos, que se extraen habitualmente de los encabezados de las colum-nas de la base de datos o tabla de patrones.
La solución del problema se aborda desde el paradigma de la programación
orientada a objetos y metodologías y herramientas relacionadas, tal como lo esUML, ya que esta última permite un modelamiento conceptual tanto del prob-lema como de la solución. Se presentará en esta sección algunas generalidadesque permitan interpretar mejor algunos segmentos de código que se presentan.
En primera instancia, se requiere modelar como va a interactuar un usuariocon el sistema final. Al examinar esta interacción, lo que se conoce como casode uso general, y se observa en la figura 8.
Cada uno de los óvalos muestra una función u operación principal, que re-quiere una descripción más detallada. Dentro de los productos finales que seobtienen a partir de los diagramas de casos de uso se encuentran los principalesalgoritmos y por tanto las diferentes funciones que se incluirán en el programa.Además, el diagrama general de casos de uso sirve de ayuda al momento dedefinir la estructura del programa principal.
Es así como a partir del diagrama de la figura 8, se puede expandir la infor-mación de cada uno de ellos. El desarrollo de las técnicas de modelamiento conUML por una parte sugieren algunas clases, y la traducción algorítmica den-tro del lenguaje final seleccionado y la estructura de clases decidida finalmenteorigina un código.
Es neceario definir como se va a representar el árbol de decisión a evolu-cionar dentro de la PG. En la figura 9, los recuadros son nodos y las flechasson apuntadores; al observar la estructura del nodo padre, se ve que solo tiene3 apuntadores: al propio padre, al primer hijo y al hermano.
Luego al observar cómo se relaciona un nodo con los demás nodos que con-forman un árbol se tiene la mecánica de ciertas funciones que requieren recorrerlos nodos de un árbol.: Las funciones que ubican nodos Por ejemplo, el nodopadre solo puede conocer al nodo hijo 2 a través del nodo hijo 1.
La solución se puede ver en la figura 10. No es un gráfico UML, pretendemostrar no solo los objetos y sus relaciones entre sí, sino algunas de las funcionesque se requieren para el correcto funcionamiento del programa final.
Por una parte, el entorno evalúa a cada árbol de decisión. Para ello, elprograma debe leer la base de datos original para luego construir las tablas de
27
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
28/44
Usuario
Cargar Datos
Cargar Parametros
evolucionar
Modificar Parametros
Generar Poblacion
Aplicar Operador Evolutivo
Evaluar Poblacion
Aplicar Torneo
Aplicar Elitismo
Mutar
Clonar
Cruzar
Terminar Evolucion
Figura 8: Diagrama general de casos de uso.
datos de entrenamiento o validación. El programa debe examinar la base dedatos original para extraer de allí los diferentes atributos, y para cada atributodebe identificar y extraer cada uno de los valores posibles. Con esta informaciónse llena un objeto de tipo DT (Figura 10)
La tabla DT es examinada cada vez que se desea construir un árbol dedecisión, con el fin de determinar el número máximo de nodos que puede cor-responder a cada atributo. Por ejemplo, para un atributo A, se tienen i valoresposibles. La última columna Y corresponde a la clase que se debe asignar acada patrón de entrada para los datos de entrenamiento y validación. En este
ejemplo, se tienen k clases diferentes para ser asignadas a cada patrón. Bajoesta perspectiva, evaluar un árbol es en gran manera equivalente a realizar cadauno de los recorridos que indica el patrón de datos, del árbol partiendo del nodoraiz. Cuando se encuentra una clasificación (nodo terminal), se contrasta con laclase presente en el patrón de entrenamiento. Si coinciden, se anota un acierto
28
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
29/44
NodoPadre
N o d o
H i j o
Nodo Hermano
N o d o
P a d r e
NodoHijo 1
NodoHijo 2
Nulo
NuloNodoRaiz
NuloNulo
Figura 9: Estructura computacional de un nodo raiz con dos hijos.
(hit [Koz92]). Una posible medida final de la aptitud es la propuesta en 1.4.
2.2.1. Ciclo Evolutivo General
El caso de uso evolucionar representa el ciclo principal del programa en elcual se tiene una población de árboles de decisión en evolución. Se ha definido deforma bastante abstracta en primera instancia, aunque iteraciones posterioreslo deben detallar y mejorar. El flujo de eventos de este caso de uso se expresaen los algoritmos 2.1 y 2.2. El primero es una versión general de los algoritmosevolutivos que se aplicar muy bien al caso de la PG, mientras que el segundocorresponde de manera general a la propuesta de Koza [Koz92] con algunasmodificaciones y simplificaciones.
Algoritmo 2.1 (Algoritmo Evolucionario Básico)Describe el ciclo principal de la PG, según modelo propuesto en [Bac00].
Input: µ,λ,θι, θr, θm, θ , F (t)θι: parámetros de configuración de condiciones de terminación.ι(P (t), θι) condición de terminación ι que dependen de P (t) y θ ι
Output: a∗, el mejor individuo encontrado durante la ejecución.P ∗, la mejor población encontrada.
29
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
30/44
Objeto de Clase Entorno(CDTEnv)
Prueba o Atributo (nodo)Resultado de prueba (ramas)...
a1a2a3…ai
b1b2b3…bi
Y1Y2Y3…Yi
A B Y AtributosExtraidos
ValoresPosiblesExtraidos
Tamaño de PoblacionProbabilidad Operadores
Probabilidad Nodos…
Objetos de Clase CParam
Estructura DT
Tabla de Datos paraEntrenamiento (S)
Tabla de Datos paraValidación (V)
Base de DatosOriginal
Patrones para:Entrenamiento (S)Validación (V)
Archivo deParámetros
Objetos de Clase Arbol(CDTree)
Datos del mejorParámetros Evolución...
evaluaSelecciona
Y aplicaOperador Evolutivo
carga
consulta
consulta
alimenta
Resultadosevaluación
Figura 10: Estructura inicial propuesta de la solución.
1. t ←− 0/* genera población inicial e inicializa */ 2. P (t) ←− inicialice(µ)3. F (t) ←− inicialice(P (t), µ)4. Mientras Que (ι(P (t), θι) = true) haga 5. P (t) ←− cruzar(P (t), θr)6. P (t) ←− mutar(P (t), θm)7. F (t) ←− evaluar(P (t), λ)8. P (t + 1) ←− seleccionar(P (t), F (t), µ , θ)9. t ←− t + 110. Fin Mientras11. devuelve a∗, P ∗
En este algoritmo [Bac00] la población P (t) está conformada por µ individu-os, P (t) por κ individuos y P (t) por λ individuos. Al observar el pseudocódigo,se puede observar que P (t) es la población en la generación actual, mientras queP (t + 1) indica una nueva generación en formación (offspring ). P (t) es la sub-población obtenida por cruce, mientras que P (t) es la población obtenida pormutación de individuos cruzados. Una diferencia clara respecto del diagrama deflujo de la figura 4 consiste en que en este último P (t) ←− mutar(P (t), θm)se aplica a los individuos resultantes del cruce, pero se encuentran esquemas en
30
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
31/44
los cuales P (t) ←− mutar(P (t), θm) teniendo en cuenta que se debe controlarla relación entre los tamaños de las poblaciones µ y λ.
El algoritmo 2.1 muestra la inicialización de t, de P (t) con tamaño µ y dela función de evaluación. El criterio de teminación t depende de gran cantidadde parámetros, que son representados por θt. Luego entra en el ciclo principal,donde el sistema puede operar con la selección, el cruce o la mutación, quedepende de otra cantidad de parámetros.
En el algoritmo se tiene que si λ = κ = µ. Si κ = µ.indica que no hay cruce,y si κ = λ no hay mutación. El operador de selección selecciona µ individuos deP (t) de acuerdo con los valores de aptitud F (t).
Se considerará ahora la generación de la población inicial con el métodogrow [Koz92]. Sin embargo, mediante nuevas instricciones si-entonces o case ,se pueden incorporara nuevos algoritmos de generación de la población inicial( full, ramped half-half [Koz92]). Básicamente, el algoritmo de generación de lapoblación inicial consiste en un ciclo for con µ iteraciones, para cada uno delos individuos de la población.
En este escrito se trabaja una versión modificada, equivalente a la versiónpropuesta por Koza, de acuerdo con la figura 3. En este algoritmo, la poblacióninicial se evalúa con el fin de verificar si efectivamente uno de los individuosgenerados hace cumplir con la condición de terminación ι(P (t), θι) y por lo tantono se continúa con el proceso evolutivo. Si se continúa la evolución, se realizaun proceso de selección que da como resultado un conjunto de individuos a loscuales se les debe aplicar el operador evolutivo, uno a la vez, hasta completaruna nueva generación.
Algoritmo 2.2 (Algoritmo Evolucionario Básico)Describe el ciclo principal de la PG.
Input: µ,λ,θι, θr, θm, θ , F (t)θι: parámetros de configuración de condiciones de terminación.ι(P (t), θι) : condición de terminación ι que depende de P (t) y de θι.Φ = {φc, φm, φr...} : conjunto de operadores evolutivos
Output: a∗, el mejor individuo encontrado durante la ejecución.P ∗, la mejor población encontrada.
1. t ←− 0/* genera población inicial y la inicializa */ 2. P (t) ←− inicialice(µ)3. F (t) ←− inicialice(P (t), µ)4. F (t), a∗ ←− evaluar(P (t), µ)5. Mientras_Que (ι(P (t), θι) = true) haga 6. a1 ←− clonar(a
∗) /*elitismo*/
7. Para cada ai con i = 2 hasta µ8. operador = ruleta(Φ)9. {a1,...} ←− seleccionar(P (t), F (t), µ , θ)10. si operador = cruzar entonces11. (ai, a
j) ←− cruzar({a1,...,aφ}, θr)
31
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
32/44
12. si operador = mutar entonces13. ak ←− mutar(ak, θm)
14. Fin_para15. F (t) ←− evaluar(P (t))16. t ←− t + 117. Fin_Mientras18. devuelve a∗, P ∗
Para codificar finalmente este algoritmo, se debe tener en cuenta la repre-sentación del árbol de decisión dentro de la PG. La estructrua de árbol de losindividuos en PG facilita de manera inherente el diseño de funciones recursivasde creación, eliminación y en general, manipulación. Aún cuando computacional-mente las funciones recursivas tienen más exigencia de recursos computacionales(stack por ejemplo), son funciones más compactas en su diseño.
Listado 2.1 (Programa Principal) Ciclo principal /*pPop, pNewPopulation son apuntadores a la población actual y nueva*/ /*pEnv es un apuntador a un objeto de tipo entorno*/ 1. int main(int argc,char ∗ argv[])2. g.generation = INIT IAL;3. pPop = new CDTree[g.population];4. pNewPopulation = new CDTree[g.population];5. for (ind = 0; ind < g.population; ind + +)6. ( pP op)− > f illTree( pP op + ind, ...); /*completa recursivamente*/ 7. ...8. while (g.generation < pEnv− > getMaxGeneration())9. pEnv− > setNumBestTree( pEnv− > evalPopulation()); /*evalua*/ 10. if ( pEnv− > getStopCriteria() == true)11. ... /*termina evolución*/ 12. newInd = 0;13. pEnv− > clone( pEnv− > getNumBestTree(), newInd);14. newInd + +;15. while (newInd < pEnv− > getPopulation())16. geneticOperator = pEnv− > operatorSel();17. if (geneticOperator == CROSS )18. /*...cruzar individuos 19. else if (geneticOperator == REPRODUCTION )20. /*...clonar individuo*/ 21. else if (geneticOperator == MUTATION )22. /*... mutar individuo*/
23. g.generation + +;24. delPopulation();25. pEnv− > setNumBestTree( pEnv− > evalPopulation());26. return pEnv− > getNumBestTree();
32
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
33/44
En el listado 2.1, la función fillTree() es una función recursiva que vagenerando de una manera aleatoria o probabilística (según los parámetros) cada
uno de los µ individuos que conforman la población. La función evalPopulation()igualmente evalúa cada uno de los árboles de decisión de manera recursiva.
2.2.2. Generación de la Población Inicial.
Se disponen de diferentes maneras de generar la población inicial, se describeel algoritmo y su expresión en C++ para una función que genera la poblacióninicial utilizando el método grow.
Algoritmo 2.3 (Grow)Algoritmo recursivo GROW para generar población inicial.
Input: θp : profundidad máxima inicial,F = {f 1,...,f m} : funciones primitivas T = {t1,...,tm} : nodos terminales a ←− seleccionar probabilisticamente una raiz f i ∈ F
Output: a : individuo de P
/* ciclo principal de generación de la población inicial:/* para individuo = 1 hasta µ/* a ←− seleccionar probabilisticamente raiz f i ∈ F /* a ←− grow( a, altura );/* fin_para1. grow( a, altura)2. Si altura = θp entonces3. devuelve a ←− seleccionar probabilisticamente nodo ti ∈ T 4. Si no entonces
5. n ←− seleccionar probabilisticamente tipo de nodo F o T 6. si n ∈ F 7. a ←− seleccionar probabilisticamente f i ∈ F 8. nueva_altura = altura + 19. repetir según aridad de f i10. grow( a, nueva_altura)11. fin repetir12. si n ∈ T 13. devuelve a ←− seleccionar probabilisticamente ti ∈ T
Al examinar este pseudocódigo, se observa que el método grow genera losindividuos de la población inicial de manera libre, y podrían crecer bastante enprofundidad de no ser por uno de los parámetros iniciales, que limita la pro-
fundidad máxima para cada árbol generado inicialmente. La presión evolutivaposterior es la que tiende a controlar que los árboles no sean demasiado grandes,aunque no se excluye la posibilidad de que dicho límite se imponga a la fuerzamediante codificación.
La codificación en C++ se puede realizar como se observa en el listado 2.2,donde idx es el índice que corresponde a una determinada función o terminal
33
8/16/2019 Leonardo Jimenez Moscovitz Especializacion
34/44
según una tabla de funciones y terminales; la variable level indica el nivel a quese encuentran los nodos que se están completando en ese momento, y pN y pT
son apuntadores a la estructura árbol y la estructura DT respectivamente.
Listado 2.2 (Generación de Población Inicial)1. createDTree(CDTree ∗ pN, DT ∗ pT, int idx, int level) { 2. if ( pN ! = N UL_)3. { switch(idx) { 4. case TERMINAL:5. pN->setNDT(0);6. pN->setLblValueIdx(randGenerator(0, (pT->arity)-1));
...}7. if (idx > T ERMINAL){8. level++;9. pN − > insChild(newCDTree); //inserta hijo
10. if (level >= g.maxLevel) {TypeN = TERMINAL;}11. else {TypeN = ( randGenerator(T Y P E _1,LAST ));}12. pN->createDTree(pN->getChild(), pT, TypeN, level);}13. if (idx > UNARY ){14. pN = pN − > getChild(); //se desplaza 15. for (n = 2