Lunch&Learn: Combinación de modelos

24
By: Fernando Velasco, Alberto Ezpondaburu Cóctel de modelos

Transcript of Lunch&Learn: Combinación de modelos

Page 1: Lunch&Learn: Combinación de modelos

By: Fernando Velasco, Alberto Ezpondaburu

Cóctel de modelos

Page 2: Lunch&Learn: Combinación de modelos

¿Quiénes somos? ¿De dónde venimos?¿A dónde vamos?

- Stratians- Data Scientists- Con formación matemática- Proyectos en común: Mediaset

[email protected] [email protected]

Page 3: Lunch&Learn: Combinación de modelos

Índice Analítico

Introducción: ¿por qué combinar modelos?

Boosting & Bagging basics

Demo:○ Implementación de Adaboost con árboles

binarios○ Feature Selection con Random Forest

1

2

3

Page 4: Lunch&Learn: Combinación de modelos

Regresión y Clasificación

Page 5: Lunch&Learn: Combinación de modelos

Errores y Medidas

Trade off :

● Over-Fitting : ○ Bias bajo, Varianza alta.○ Modelo complejo y flexible.

● Under-Fitting :○ Bias alto, Varianza baja.○ Modelo simple y rígido.

Normalmente:

Page 6: Lunch&Learn: Combinación de modelos

Aumentando la complejidad

Page 7: Lunch&Learn: Combinación de modelos

THANK YOU!

Page 8: Lunch&Learn: Combinación de modelos

Complejidad y errores

Page 9: Lunch&Learn: Combinación de modelos

¿Por qué combinar modelos?

● Tenemos 20 clasificadores binarios independientes con probabilidad de acierto del 55%

● La suma de ellos sigue una distribución binomial.

Modelo Único :P(Acierto) = 0.55σ = 0.49

Ensemble :P(Acierto) = 0.75σ = 0.11

Page 10: Lunch&Learn: Combinación de modelos

Combinación de modelos: ensembles

● Entrenamiento, uniforme o no, de diferentes modelos.

● Generalmente, los modelos se entrenan sobre diferentes muestras

● Combinación de las predicciones de cada modelo.

● La predicción basada en diferentes modelos aumenta la estabilidad, reduciendo la varianza y limitando los efectos del ruido

● Dependiendo de la metodología de la combinación, también podemos reducir el bias

Page 11: Lunch&Learn: Combinación de modelos

Tipos de ensemble

ENSEMBLES

HYBRID LEARNING

● Resampling:

○ Bagging: “Bootstrap aggregation”

○ Boosting: Resampleado con pesos

● Hybrid learning:

○ Stacking: Uso de modelos diferentes

RESAMPLING

BoostingBagging

Modelos heterogéneos

Modelos homogéneos

Resampleado uniforme con

repetición

Se asocia un peso a las instancias en cada

entrenamiento

Page 12: Lunch&Learn: Combinación de modelos

Combinación de modelos

Número de modelos entrenadosSampleadoIteracionesEntrenamientoEnsemble de modelos

Page 13: Lunch&Learn: Combinación de modelos

THANK YOU!

Bagging Boosting

Page 14: Lunch&Learn: Combinación de modelos

Semejanzas y diferencias entre Bagging y Boosting

● Ambos son ensembles que entrenan N modelos base para obtener un modelo final...

… Pero aunque en bagging se construyen de manera independiente, en boosting cada modelo se construye para mejorar los errores del anterior.

Semejanzas Diferencias

● Ambos generan varios datasets mediante un sampleado aleatorio

● Ambos toman la decisión promediando los N modelos entrenados (o mediante un voto mayoritario)

… Pero en el caso del boosting, la media viene pesada por los resultados de cada modelo, para favorecer a los mejores modelos base

● Ambos reducen la varianza y proporcionan una mayor estabilidad

… Pero sólo el boosting reduce el bias. Por otro lado, el bagging funciona mucho mejor para reducir el over-fit, mientras que el boosting, en cambio, podría llegar a aumentarlo

… Pero solo el boosting valora los datos en función de los casos más complicados de predecir

Page 15: Lunch&Learn: Combinación de modelos

Clasificación con árboles binarios

- Cada nodo sólo tiene dos posibilidades

- El clasificador resulta en dos clases*

- Son simples y fácilmente interpretables (caja blanca)

- Capturan estructuras complejas- Con suficiente profundidad, tienen

poco bias- Pueden verse afectados por la

varianza y por ruido => son candidatos a un ensemble.

Laughs out loud?

Dreams big?Does the

right thing?

Helps others?

Dreams big? Stratian Something else

Yes

Plays fair?

Dreams big?

Yes

Nice to people?

Yes

Yes

Yes

Yes

Yes

No

No

No

No

No

No

NoYes No

StratianStratianStratianSomething elseSomething else

Jorge*

Something else

Page 16: Lunch&Learn: Combinación de modelos

Árboles de decisión: algoritmo base

1.- Comenzamos con un árbol vacío

2.- Selección de la variable para dividir el árbol: - Impureza de Gini

- Ganancia de información- ...

3.- Evaluar criterio de parada:- Profundidad- Separabilidad completa- Split en todas las variables

4.- Si no paramos, continuar generando el árbol en cada rama

Page 17: Lunch&Learn: Combinación de modelos

AdaBoost: idea

Pesos i en las instancias: ⍵Necesitamos calibrarlas para cada

entrenamiento

Pesos αj en los modelos: También tienen que ser

calibrados para cada entrenamiento

Page 18: Lunch&Learn: Combinación de modelos

Árbol de decisión con pesos en las samples

1.- Comenzamos con un árbol vacío

2.- Selección de la variable para dividir el árbol: - Impureza de Gini

- Ganancia de información- ...

3.- Evaluar criterio de parada:- Profundidad- División completa- Split en todas las variables

4.- Si no paramos, continuar generando el árbol en cada rama

La selección se hace teniendo en cuenta los pesos i de las ⍵

instancias

Page 19: Lunch&Learn: Combinación de modelos

AdaBoost discreto sobre árboles: algoritmo base

● Entrenamiento del árbol

● Evaluación del modelo: cálculo de los pesos de los errores

● Cómputo del peso αt del modelo

● Cómputo del peso i de cada ⍵instancia

Inicializamos los pesos al mismo valor:

La selección se hace teniendo en cuenta los

pesos i de las ⍵instancias

● Normalización de los pesos

Ahora, para cada una de las iteraciones (modelos):

Finalmente, tomamos el ensemble de los modelos:

Page 20: Lunch&Learn: Combinación de modelos

Bagging: Random ForestBaggins in the forest Bagging: Random

Forest

● Cada árbol es entrenado con un subconjunto de los datos totales.

● Las variables para cada árbol son un subconjunto de las variables totales, y son elegidas de manera aleatoria

Page 21: Lunch&Learn: Combinación de modelos

Selección de variables con Random Forest: permutar variables

● Entrenamiento de un modelo f con un conjunto de entrenamiento X

● Cálculo de performances (e.g: R², AUC, ...) en testing

● Permutación de variables

● Performances con el nuevo conjunto

● Calculamos cómo afecta cada variable:

Para cada variable

Page 22: Lunch&Learn: Combinación de modelos

Selección de variables con Random Forest: Gini

Criterio de split => métrica (Gini, Informacion, Varianza...)

Dreams big?

Yes No

Gini: donde es la proporción de la clase i

Importancia de una variable en un split:

Importancia en el árbol:

Importancia en el modelo:

0: 801: 120

0: 70 1: 10

0: 10 1: 110

Posteriormente, podemos hacer un ranking de

variables por importancia para hacer la feature

selection

Page 23: Lunch&Learn: Combinación de modelos

Dudas, preguntas, peticiones...

Page 24: Lunch&Learn: Combinación de modelos

THANK YOU!