Árboles de decisiÓn basados en … · una muestra aleatoria el set original de datos 2) construir...

46
ÁRBOLES DE DECISIÓN BASADOS EN ALGORITMOS GENÉTICOS Ing. Antonelli Sabrina Lic. Rocco Leonardo Metaheurísticas Maestría en Data Mining (UBA)

Upload: hadieu

Post on 13-Oct-2018

237 views

Category:

Documents


0 download

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

Proceso Alg. Genético

Tres operadores genéticos: selección, crossover y mutació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%).

GAIT: prunning (2)

Experimentos

• Y ahora los

experimentos

comparativos

….

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

IMPLEMENTACION RAPIDMINER

POBLACIONES

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

RESULTADOS

Accuracy

Sensi

tivi

ty

RESULTADOS Tamaño del mejor Arbol (Modelo)

51

147

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

RESULTADOS

Accuracy

% D

atos

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

GATREE

GATREE

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

GRACIAS!!