Este documento presenta una introducción a los métodos de combinación de modelos (ensembles) como boosting y bagging. Explica brevemente cómo estos métodos entrenan múltiples modelos de forma independiente o dependiente y luego combinan sus predicciones para mejorar la precisión y reducir la varianza. También incluye ejemplos de implementación de adaboost con árboles de decisión binarios y selección de características con random forest.
9. ¿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
10. 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
11. 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
14. 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
15. 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
StratianStratian
Stratian
Something else
Something else
Jorge*
Something else
16. Á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
17. 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
18. Á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
19. 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:
20. Bagging: Random Forest
Baggins in the forestBagging: 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
21. 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
22. 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: 80
1: 120
0: 70
1: 10
0: 10
1: 110
Posteriormente, podemos
hacer un ranking de
variables por importancia
para hacer la feature
selection