En muchos problemas de machine learning, un solo modelo rara vez captura toda la estructura de los datos.
La idea central es simple:
Distintos modelos cometen errores distintos.
Si logramos combinarlos de forma adecuada, esos errores pueden compensarse.
El esquema general consiste en:
Este enfoque fue clave en múltiples competiciones de Kaggle.
:contentReferenceoaicite:0
Existen dos estrategias fundamentales:
Combinación directa de predicciones
Uso de un modelo adicional que aprende a combinar
Supongamos un problema de regresión.
Entrenamos dos modelos:
Cada uno produce predicciones sobre el mismo conjunto de test.
Predicciones:
| Test ID | Modelo A | Modelo B |
|---|---|---|
| 1 | 1.2 | 1.5 |
| 2 | 0.1 | 0.4 |
| 3 | 5.4 | 7.2 |
Una forma simple de combinar:
\[ \hat{y} = \frac{1}{n} \sum_{i=1}^{n} \hat{y}_i \]
Resultado:
| Test ID | Promedio |
|---|---|
| 1 | 1.35 |
| 2 | 0.25 |
| 3 | 6.30 |
También se puede usar:
\[ \hat{y} = \left(\prod_{i=1}^{n} \hat{y}_i\right)^{1/n} \]
Esto es útil cuando se quiere penalizar valores extremos.
El blending es simple, pero tiene una limitación importante:
No aprende cuándo confiar más en cada modelo.
Siempre combina de la misma forma.
Aquí es donde aparece stacking.
El stacking introduce una idea más potente:
Un segundo modelo aprende a combinar las predicciones.
Proceso general:
:contentReferenceoaicite:2
Datos de entrenamiento:
| ID | feature_1 | … | feature_N | Target |
|---|---|---|---|---|
| 1 | 0.55 | … | 1.37 | 1 |
| 2 | 0.12 | … | -2.50 | 0 |
| 3 | 0.65 | … | 3.14 | 0 |
| 4 | 0.10 | … | 2.87 | 1 |
| 5 | 0.54 | … | -0.10 | 0 |
Separamos en dos partes:
En la Parte 1 entrenamos:
Sobre la Parte 2:
| ID | Target | A_pred | B_pred | C_pred |
|---|---|---|---|---|
| 4 | 1 | 0.71 | 0.52 | 0.98 |
| 5 | 0 | 0.45 | 0.32 | 0.24 |
Estas predicciones se convierten en nuevas variables.
| ID | A_pred | B_pred | C_pred |
|---|---|---|---|
| 11 | 0.62 | 0.45 | 0.81 |
| 12 | 0.31 | 0.52 | 0.41 |
| 13 | 0.74 | 0.55 | 0.92 |
Entrenamos un nuevo modelo usando:
como variables explicativas.
El modelo de segundo nivel produce:
| ID | Predicción final |
|---|---|
| 11 | 0.73 |
| 12 | 0.35 |
| 13 | 0.88 |
Blending: - Promedia
Stacking: - Aprende
Los métodos de ensembling permiten:
Pero:
Requieren cuidado para evitar overfitting.