lunch&learn: combinación de modelos
TRANSCRIPT
![Page 1: Lunch&Learn: Combinación de modelos](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/1.jpg)
By: Fernando Velasco, Alberto Ezpondaburu
Cóctel de modelos
![Page 2: Lunch&Learn: Combinación de modelos](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/2.jpg)
¿Quiénes somos? ¿De dónde venimos?¿A dónde vamos?
- Stratians- Data Scientists- Con formación matemática- Proyectos en común: Mediaset
![Page 3: Lunch&Learn: Combinación de modelos](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/3.jpg)
Í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](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/4.jpg)
Regresión y Clasificación
![Page 5: Lunch&Learn: Combinación de modelos](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/6.jpg)
Aumentando la complejidad
![Page 7: Lunch&Learn: Combinación de modelos](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/7.jpg)
THANK YOU!
![Page 8: Lunch&Learn: Combinación de modelos](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/8.jpg)
Complejidad y errores
![Page 9: Lunch&Learn: Combinación de modelos](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/9.jpg)
¿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](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/12.jpg)
Combinación de modelos
Número de modelos entrenadosSampleadoIteracionesEntrenamientoEnsemble de modelos
![Page 13: Lunch&Learn: Combinación de modelos](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/13.jpg)
THANK YOU!
Bagging Boosting
![Page 14: Lunch&Learn: Combinación de modelos](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/16.jpg)
Á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](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/18.jpg)
Á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](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/23.jpg)
Dudas, preguntas, peticiones...
![Page 24: Lunch&Learn: Combinación de modelos](https://reader036.vdocuments.pub/reader036/viewer/2022062310/58ec87221a28ab034a8b4585/html5/thumbnails/24.jpg)
THANK YOU!