Árboles de decisiÓn basados en … · una muestra aleatoria el set original de datos 2) construir...
TRANSCRIPT
ÁRBOLES DE DECISIÓN BASADOS
EN ALGORITMOS GENÉTICOS
Ing. Antonelli Sabrina
Lic. Rocco Leonardo Metaheurísticas
Maestría en Data Mining (UBA)
Alcance de la presentación • Teoría:
Exponer conceptos básico sobre árboles
de decisión basados en algoritmos
genéticos
• Más allá de la teoría:
Poner a prueba los mismos y comparar el
rendimiento de árboles de decisión
genéticos con otros 3 algoritmos de
clasificación: o Random Forest
o Árboles de Decisión C.45
o Algoritmos genéticos + C.45
o Árboles de decisión basados en algorítmos genéticos
Introducción: GAIT
Representar un árbol de decisión como un cromosoma y
aplicar algoritmos genéticos para incrementar el
accuracy.
o Extraer subsets de información
o Construir un árbol C4.5 sobre cada subset
o Realizar crossover y mutación sobre los mismos usando
algoritmos genéticos
o Combinarlos en árboles de mejor performance
Revisión Alg. Genéticos
El proceso se repite por un número específicado
de generaciones
Población de cromosomas
Crossover
Mutación
Selección sobrevivientes
Se selecciona una población inicial de cromosomas y se determina el fitness de cada uno de ellos
Se selecciona los padres y se realiza un crossover para formar una descendencia
La descendencia es entonces mutada y se agrega a la población.
Un conjunto de cromosomas se le permite sobrevivir a la próxima generación
Binary trees (1)
• El enfoque de Fu et al implica el uso de una estructura de
datos de árboles binarios.
• Los tres principales operaciones genéticas que utilizan trabajan con una representación de árboles binarios:
población inicial de árboles, crossover, mutación y
evaluación.
Binary trees (2) • Si bien el algoritmo implementado trabaja con árboles
binarios cualquier árbol con múltiples aristas puede ser
convertido a binario.
• El número de (leaf nodes) nodos hojas entre
el árbol binario y el original son identicos
• El número de operaciones requeridas para
transformar a un árbol binario es proporcional
al número de nodos en el árbol binario.
GAIT: Genetic Algorithm approach for
generating Intelligent Trees
Tres pasos fundamentales del algoritmo GAIT:
1) Extraer muchos subsets de puntos (rows, casos) de
una muestra aleatoria el set original de datos
2) Construir un árbol de decision en cada subset
utilizando C4.5 (Extensión del ID3 de Quinlan).
3) Utilizar un algoritmo genético que permita a los
árboles hacer cross-over y mutar tal que permitan
generar árboles con mayor poder de clasificación
Boosting vs GAIT • Los árboles de decisión son clasificadores inestables, ya que la
salida de los mismos son afectados en gran medida si es que el set de entramiento presenta pequeños cambios.
• Los algoritmos de boosting crean un set inicial de árboles basados en
m muestras (con reposición), para los que se genera un clasificador
por subset. Luego estos clasificadores son integrados a un ensamble en donde se los hace votar (con un peso determinado)
Boosting vs GAIT (2)
• Teniendo en cuenta la inestabilidad, el primer paso de GAIT se asemeja a algoritmos de boosting y bagging, sin embargo se identificamos diferencias.
• En lugar de crear muestras boostrap del set de datos de entrenamiento, en GAIT se particiona el set de datos en sub-muestras.
• Otra diferencia (y ventaja en términos de tiempos de proceso) de GAIT respecto a bossting, es que el producto de GAIT es un solo árbol de decisión (y no un ensamble donde de clasificadores).
• En boosting y bagging, todo el ensamble de árboles tiene que ser construido y guardado para clasificar futuras observaciones. (recordar las implicancias prácticas de DM en Econ y Finanzas).
Alg. Genéticos en GAIT
GAIT utiliza tres pasos fundamentales relativos a
Algoritmos genéticos:
- La selección inicial de árboles
- Las operaciones genéticas de los mismos
- La evaluación de la performance de los árboles
AG en GAIT: población inicial
Población inicial de árboles:
• Si bien hay muchas maneras para generar la
población inicial, es importante priorizar que la
misma contenga una variedad importante de
estructuras.
• En GAIT, la población inicial es creado por los
árboles generados por C4.5 sobre los subsets de
entrenamiento.
AG en GAIT: operaciones
• Operaciones genéticas implicadas en GAIT: Seleccion, Crossover y mutación.
• Selección: Es el proceso de elegir árboles para la próxima generación desde la generación actual
• Crossover: Realiza intercambio de sub-árboles entre los árboles
• Mutación: En GAIT, es una operación que intercambia sub-árboles dado un determinado árbol
Operaciones en GAIT: selección
• Los árboles son elegidos aleatoriamente para
realizarles operaciones de crossover y mutación.
• La probabilidad de ser seleccionado para alguna
de estas operaciones es proporcional al fitness
score del árbol.
GAIT: evaluación
• En GAIT se evalua el fitness del árbol de decisión
mediante el cálculo del porcentaje de observaciones
correctamente clasificadas en el data set de scoring.
• El set de scoring es una muestra aleatoria del set de
datos original, de tal manera que el set de
entrenamiento y scoring son mutuamente excluyentes.
• Durante la evolución, algunos de los árboles de decisión
podrían tener violaciones lógicas luego de que se
aplique operaciones de crossover y mutuación.
• En ese caso se necesita realizar un chequeo lógico
feasibility check
GAIT: Crossover (1)
• GAIT implementa dos tipos de
crossover:
Un crossover sub-árbol a sub-árbol:
Se determinan los sub-árboles para
hacer crossover aleatoriamente.
Esto se hace eligiendo un nodo
aleatoriamente en el árbol y
seleccionando un sub-árbol
perteneciente a ese nodo.
GAIT: Crossover (2)
• Segundo tipo de crossover:
Un crossover sub-árbol a
hoja (subtree-to-leaf).
En este caso el crossover se
realiza mediante el
intercambio de un sub-árbol
o una hoja de un árbol con
respecto a un sub-árbol o
bien otro hoja de árbol a
cualquier nivel.
GAIT: mutación
Dos tipos de mutación son realizadas:
• Dentro de un mismo árbol mediante
la eventual aleatorización del
intercambio de un sub-árbol con
otro sub-árbol.
GAIT: mutación (2)
Segungo tipo de mutación:
• Dentro de un árbol
ocasionalmente aleatorizar el
intercambio de un sub-árbol
con una hoja.
GAIT: logic check
• Después de cada mutación u operación de
crossover puede aparecer inconsistencias lógicas,
por lo que se realiza un chequeo de lógica.
• El chequeo de factibilidad implementado por GAIT
elimina cualquier violación lógica del árbol de
decisión.
Ejemplo a continuación
GAIT: Logic check (2) • Supongamos una violación lógica con “A1 >5 y A1 > 3”
Consecuentemente el sub-árbol asociado con A1 > 3 debería ser
concatenado ya que A1 > 5 implica A1 > 3.
GAIT: prunning
• Después de que el árbol fue concatenado
asegurando que no hay violaciones lógicas, es
entonces podado a fin de incrementar el poder de
clasificación con otros data sets y no hacerlo tan
específico al set de datos.
• El podado empieza desde la parte inferior del árbol
y examina cada nonleaf subtree.
• Cada sub-árbol es reemplazado por una hoja si es
que el reemplazo resulta en un incremento en la
tasa de error menor que un criterio (ej: 0,5%).
ARBOLES DE DECISIÓN BASADOS
EN ALGORITMOS GENETICOS
Ing. Antonelli Sabrina
Lic. Rocco Leonardo
Segunda parte
EXPERIMENTOS
Comparar la Performance de:
Arbol de decisión C4.5 basado en Algoritmo Genético (GAIT)
C4.5 (J48)
Random Forest
Gatree
Evaluar el comportamiento ante la modificación de parámetros
Mutación y Crossover (Calidad del modelo final)
Población Inicial y Generaciones
ALGORITMO
Generar la
Población Inicial
Evalua Selección Crossover Mutación Evalua
Modelo Final
Próxima
Generación
ALGORITMO
Para cada individuo de la población:
Mutación. (Activar o desactivar atributos con probabilidad
p_mutation)
Crossover. Selecciona 2 individuos de la población e intercambia
genes (atributos) para crear la descendencia. Tipo de Crossover: uniforme,
une-point, shuffle.
Selección. Selecciona los individuos para la próxima generación.
Si el Fitness aumenta o Generación < Max Generación volver al paso 2.
IMPLEMENTACION RAPIDMINER
Dataset
UCI (Census Income)*
Clase = Ingresos anuales
positiva >50K
negativa <=50K
- Arbol C4.5 optimizado por Algoritmo Genético (GAIT)
- Arbol C4.5 (J48)
- Random Forest
X-Validation
*http://archive.ics.uci.edu/ml/datasets.html
DATASET
*http://archive.ics.uci.edu/ml/datasets.html
Dataset
UCI (Census Income)*
3500 casos
Clase: Ingreso anuales
<=50K (2621)
= >50K (879)
Relación
Estado Civil
Edad
Sexo
País
Raza
Ocupación
Hs por Semana
Ganancias
Educación años
Educación Nivel
Workclass
Pérdidas
PARAMETROS
Población (Population size): Individuos por generación
Función de Selección (Selection Scheme): Uniform, cut, roulette wheel, stochastic universal sampling, Boltzmann, rank, tournament, non dominated sorting; default: tournament.
Max generation: máximo de generaciones
P_mutation: Probabilidad de un atributo de ser cambiado (-1 a 1)
P_crossover: Probabilidad de un individuo de ser seleccionado para crossover (0 a 1)
MEDIDAS
Accuracy: % de casos correctamente clasificados.
Tamaño del arbol
Número de Atributos Activos
Sensitivity: % casos correctamente clasificados como Clase Positiva /
Total de casos de la clase.
Specificity: % de casos correctamente clasificados como Clase
Negativa / Total casos de la clase
MUTACION
Information Gain
Mide la relevancia del atributo
en el dataset.
Information Gain
Atributo Nombre
Dataset Original Mutación
att8 Relación 1.0 inactivo
att6 Estado Civil 0.935 1.0
att7 Ocupación 0.605 0.618
att4 Educación Nivel 0.476 0.469
att11 Ganancias 0.446 0.435
att1 Age 0.429 inactivo
att5 Educación Nro 0.333 0.304
att13 Hs por Semana 0.240 0.196
att10 Sexo 0.222 inactivo
att2 Workclass 0.163 inactivo
att12 Pérdidas 0.108 inactivo
att14 País 0.071 inactivo
att9 Raza 0.046 inactivo
att3 0.0 inactivo
att11 <= 5013
| att6 = Never-married: <=50K (1128.0/35.0)
| att6 = Married-civ-spouse
| | att5 <= 11
| | | att5 <= 8: <=50K (175.0/20.0)
| | | att5 > 8
| | | | att12 <= 1762
| | | | | att1 <= 34: <=50K (251.0/48.0)
| | | | | att1 > 34
| | | | | | att7 = Adm-clerical
| | | | | | | att1 <= 50
| | | | | | | | att1 <= 44
| | | | | | | | | att1 <= 41: >50K (16.0/6.0)
| | | | | | | | | att1 > 41: <=50K (5.0/1.0)
| | | | | | | | att1 > 44: >50K (6.0)
| | | | | | | att1 > 50: <=50K (14.0/3.0)
| | | | | | att7 = Exec-managerial
| | | | | | | att2 = State-gov
| | | | | | | | att1 <= 40: <=50K (2.0)
| | | | | | | | att1 > 40: >50K (3.0)
| | | | | | | att2 = Self-emp-not-inc: <=50K (10.0/2.0)
| | | | | | | att2 = Private: >50K (43.0/10.0)
| | | | | | | att2 = Federal-gov: <=50K (1.0)
| | | | | | | att2 = Local-gov: <=50K (3.0/1.0)
| | | | | | | att2 = ?: >50K (0.0)
| | | | | | | att2 = Self-emp-inc: >50K (11.0/1.0)
| | | | | | | att2 = Without-pay: >50K (0.0)
| | | | | | | att2 = Never-worked: >50K (0.0)
| | | | | | att7 = Handlers-cleaners: <=50K (18.0/4.0)
| | | | | | att7 = Prof-specialty
| | | | | | | att5 <= 10
| | | | | | | | att13 <= 32: <=50K (5.0)
| | | | | | | | att13 > 32
| | | | | | | | | att4 = Bachelors: <=50K (0.0)
| | | | | | | | | att4 = HS-grad: >50K (4.0/1.0)
| | | | | | | | | att4 = 11th: <=50K (0.0)
| | | | | | | | | att4 = Masters: <=50K (0.0)
| | | | | | | | | att4 = 9th: <=50K (0.0)
| | | | | | | | | att4 = Some-college
| | | | | | | | | | att1 <= 41: >50K (2.0)
| | | | | | | | | | att1 > 41: <=50K (15.0/5.0)
| | | | | | | | | att4 = Assoc-acdm: <=50K (0.0)
| | | | | | | | | att4 = Assoc-voc: <=50K (0.0)
| | | | | | | | | att4 = 7th-8th: <=50K (0.0)
| | | | | | | | | att4 = Doctorate: <=50K (0.0)
| | | | | | | | | att4 = Prof-school: <=50K (0.0)
| | | | | | | | | att4 = 5th-6th: <=50K (0.0)
| | | | | | | | | att4 = 10th: <=50K (0.0)
| | | | | | | | | att4 = 1st-4th: <=50K (0.0)
| | | | | | | | | att4 = Preschool: <=50K (0.0)
| | | | | | | | | att4 = 12th: <=50K (0.0)
| | | | | | | att5 > 10: >50K (7.0)
| | | | | | att7 = Other-service
| | | | | | | att1 <= 35: >50K (3.0/1.0)
| | | | | | | att1 > 35: <=50K (31.0/1.0)
| | | | | | att7 = Sales: <=50K (64.0/26.0)
| | | | | | att7 = Craft-repair: <=50K (124.0/37.0)
| | | | | | att7 = Transport-moving: <=50K (43.0/13.0)
| | | | | | att7 = Farming-fishing: <=50K (32.0/12.0)
| | | | | | att7 = Machine-op-inspct
| | | | | | | att2 = State-gov: <=50K (0.0)
| | | | | | | att2 = Self-emp-not-inc: >50K (2.0)
| | | | | | | att2 = Private: <=50K (32.0/9.0)
| | | | | | | att2 = Federal-gov: <=50K (1.0)
| | | | | | | att2 = Local-gov: <=50K (0.0)
| | | | | | | att2 = ?: <=50K (0.0)
| | | | | | | att2 = Self-emp-inc: <=50K (0.0)
| | | | | | | att2 = Without-pay: <=50K (0.0)
| | | | | | | att2 = Never-worked: <=50K (0.0)
| | | | | | att7 = Tech-support: >50K (23.0/7.0)
| | | | | | att7 = ?: <=50K (34.0/10.0)
| | | | | | att7 = Protective-serv: >50K (18.0/5.0)
| | | | | | att7 = Armed-Forces: <=50K (0.0)
| | | | | | att7 = Priv-house-serv: <=50K (1.0)
| | | | att12 > 1762
| | | | | att12 <= 2002: >50K (26.0/1.0)
| | | | | att12 > 2002
| | | | | | att1 <= 46: <=50K (4.0)
| | | | | | att1 > 46: >50K (3.0/1.0)
| | att5 > 11
| | | att12 <= 1762
| | | | att7 = Adm-clerical: >50K (26.0/11.0)
| | | | att7 = Exec-managerial
| | | | | att1 <= 28
| | | | | | att3 <= 165916: <=50K (6.0)
| | | | | | att3 > 165916: >50K (3.0/1.0)
| | | | | att1 > 28: >50K (100.0/22.0)
| | | | att7 = Handlers-cleaners: <=50K (4.0)
| | | | att7 = Prof-specialty
| | | | | att12 <= 625: >50K (139.0/28.0)
| | | | | att12 > 625: <=50K (4.0)
| | | | att7 = Other-service: <=50K (9.0/1.0)
| | | | att7 = Sales
| | | | | att4 = Bachelors
| | | | | | att13 <= 37: <=50K (3.0)
| | | | | | att13 > 37
| | | | | | | att2 = State-gov: >50K (0.0)
| | | | | | | att2 = Self-emp-not-inc: >50K (3.0)
| | | | | | | att2 = Private
| | | | | | | | att13 <= 42
| | | | | | | | | att1 <= 35: <=50K (4.0)
| | | | | | | | | att1 > 35: >50K (3.0)
| | | | | | | | att13 > 42: >50K (7.0)
| | | | | | | att2 = Federal-gov: <=50K (1.0)
| | | | | | | att2 = Local-gov: >50K (0.0)
| | | | | | | att2 = ?: >50K (0.0)
| | | | | | | att2 = Self-emp-inc
| | | | | | | | att1 <= 47: <=50K (3.0)
| | | | | | | | att1 > 47: >50K (2.0)
| | | | | | | att2 = Without-pay: >50K (0.0)
| | | | | | | att2 = Never-worked: >50K (0.0)
| | | | | att4 = HS-grad: >50K (0.0)
| | | | | att4 = 11th: >50K (0.0)
| | | | | att4 = Masters
| | | | | | att3 <= 196385: <=50K (5.0/1.0)
| | | | | | att3 > 196385: >50K (4.0)
| | | | | att4 = 9th: >50K (0.0)
| | | | | att4 = Some-college: >50K (0.0)
| | | | | att4 = Assoc-acdm: >50K (6.0/2.0)
| | | | | att4 = Assoc-voc: >50K (0.0)
| | | | | att4 = 7th-8th: >50K (0.0)
| | | | | att4 = Doctorate: >50K (0.0)
| | | | | att4 = Prof-school: <=50K (2.0)
| | | | | att4 = 5th-6th: >50K (0.0)
| | | | | att4 = 10th: >50K (0.0)
| | | | | att4 = 1st-4th: >50K (0.0)
| | | | | att4 = Preschool: >50K (0.0)
| | | | | att4 = 12th: >50K (0.0)
| | | | att7 = Craft-repair
| | | | | att13 <= 42: <=50K (19.0/6.0)
| | | | | att13 > 42: >50K (4.0/1.0)
| | | | att7 = Transport-moving: <=50K (8.0/3.0)
| | | | att7 = Farming-fishing: <=50K (6.0/1.0)
| | | | att7 = Machine-op-inspct
| | | | | att5 <= 12: >50K (2.0)
| | | | | att5 > 12: <=50K (7.0)
| | | | att7 = Tech-support: >50K (17.0/4.0)
| | | | att7 = ?: <=50K (14.0/2.0)
| | | | att7 = Protective-serv
| | | | | att3 <= 259865: >50K (2.0)
| | | | | att3 > 259865: <=50K (2.0)
| | | | att7 = Armed-Forces: >50K (0.0)
| | | | att7 = Priv-house-serv: <=50K (1.0)
| | | att12 > 1762: >50K (42.0)
| att6 = Divorced: <=50K (467.0/36.0)
| att6 = Married-spouse-absent: <=50K (48.0/2.0)
att11 <= 5013
| att6 = Never-married: <=50K (1128.0/35.0)
| att6 = Married-civ-spouse
| | att5 <= 11: <=50K (1032.0/326.0)
| | att5 > 11: >50K (458.0/153.0)
| att6 = Divorced: <=50K (467.0/36.0)
| att6 = Married-spouse-absent: <=50K (48.0/2.0)
| att6 = Separated: <=50K (95.0/4.0)
| att6 = Married-AF-spouse: <=50K (1.0)
| att6 = Widowed: <=50K (88.0/2.0)
att11 > 5013
| att11 <= 6849
| | att6 = Never-married: <=50K (4.0)
| | att6 = Married-civ-spouse
| | | att11 <= 6514: >50K (17.0)
| | | att11 > 6514: <=50K (2.0)
| | att6 = Divorced: <=50K (2.0)
| | att6 = Married-spouse-absent: >50K (0.0)
| | att6 = Separated: >50K (0.0)
| | att6 = Married-AF-spouse: >50K (0.0)
| | att6 = Widowed: >50K (0.0)
| att11 > 6849: >50K (158.0/6.0) GAIT
GATREE Software comercial que implementa arboles de decisión basados en algoritmos genéticos.
Versión Free: http://www.gatree.com/?page_id=3
GATREE
Crossover probability refers to
the probability that a random
subtree will be replaced with
another sub-tree.
Mutation probability refers to the
probability for a node to be
randomly altered to include a new
value.
Percent of genome replacement:
This parameter control the
number of bad trees that will be
replaced with new ones between
generations.
SpeedUp Parameter
SpeedUp Parameter
CONCLUSIONES
El mejor árbol de decisión es definido como aquel que alcanza el máximo nivel de
accuracy con la mínima cantidad de nodos.
La mayor parte de los algoritmos de árboles usan heurísticas golosas (quedarse con la
mejor opción local), por lo que selecciona en cada paso lo que contribuya más al accuracy.
Ej: C4.5 selecciona el atributo que maximiza el information gain.
El GAIT parece ser mejor teoricamente que los algoritmos golosos, ya que este enfoque
permite buscar soluciones alternativas a máximos locales.
Antes que buscar hipótesis de lo general a lo específico, o viceversa, los algoritmos
genéticos generan hipotesis sucesoras mutando y recombinando repetidamente partes de
las mejores hipótesis conocidas.
Más especificamente, usan los alg. Genéticos aplicado a evolucionar árboles binarios en
búsqueda de la hipótesis que más se acerque al concepto objetivo.
BIBLIOGRAFIA
Fu, Zhiwei et al. “A Genetic Algorithm-Based Approach for Building Accurate Decision
Trees”, INFORMS Journal on Computing, Vol. 15, No. 1, Winter 2003 pp. 3–22, 2003.
Papagelis, Kalles. “GATree: Genetically Evolved Decision Trees“. Computer Technology
Institute. 2000
Papagelis, Kalles. “Breeding Decision Trees Using Evolutionary Techniques”. Computer
Technology Institute. 2003
Gokhan Tur, Halil Guvenir. “Decision Trees Induction Using Genetic Programming”.
Department of computer Engineering and Information Science. Bilkent University