Ensamblaje de modelos

¿Por qué combinar modelos?

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.

Ensamblaje de modelos

El esquema general consiste en:

  • Generar múltiples modelos a partir de los mismos datos
  • Variar:
    • features
    • algoritmos
    • subconjuntos de datos
  • Combinar sus predicciones

Este enfoque fue clave en múltiples competiciones de Kaggle.

:contentReferenceoaicite:0

Dos enfoques principales

Existen dos estrategias fundamentales:

Blending

Combinación directa de predicciones

Stacking

Uso de un modelo adicional que aprende a combinar

Model Blending (intuición)

Supongamos un problema de regresión.

Entrenamos dos modelos:

  • Modelo A
  • Modelo B

Cada uno produce predicciones sobre el mismo conjunto de test.

Model Blending (ejemplo)

Predicciones:

Test ID Modelo A Modelo B
1 1.2 1.5
2 0.1 0.4
3 5.4 7.2

Promedio aritmético

Una forma simple de combinar:

\[ \hat{y} = \frac{1}{n} \sum_{i=1}^{n} \hat{y}_i \]

Resultado:

contentReferenceoaicite:1
Test ID Promedio
1 1.35
2 0.25
3 6.30

Otras formas de combinación

También se puede usar:

Media geométrica

\[ \hat{y} = \left(\prod_{i=1}^{n} \hat{y}_i\right)^{1/n} \]

Esto es útil cuando se quiere penalizar valores extremos.

Problema del blending

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.

Model Stacking

El stacking introduce una idea más potente:

Un segundo modelo aprende a combinar las predicciones.

Proceso general:

  1. Dividir datos de entrenamiento
  2. Entrenar modelos base
  3. Generar predicciones
  4. Usarlas como nuevas variables
  5. Entrenar un modelo final

:contentReferenceoaicite:2

Stacking paso a paso

  1. Dividir el conjunto de entrenamiento en dos partes
  2. Entrenar múltiples modelos en la Parte 1
  3. Predecir en la Parte 2
  4. Predecir en test
  5. Entrenar un nuevo modelo con esas predicciones
  6. Generar predicción final

Ejemplo de datos

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

División del entrenamiento

Separamos en dos partes:

  • Parte 1 → entrenamiento de modelos base
  • Parte 2 → generación de nuevas variables

Entrenamiento de modelos base

En la Parte 1 entrenamos:

  • Modelo A
  • Modelo B
  • Modelo C

Predicciones como features

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.

Predicciones en test

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

Segundo nivel (meta-modelo)

Entrenamos un nuevo modelo usando:

  • A_pred
  • B_pred
  • C_pred

como variables explicativas.

Predicción final

El modelo de segundo nivel produce:

contentReferenceoaicite:3
ID Predicción final
11 0.73
12 0.35
13 0.88

Idea clave

Blending: - Promedia

Stacking: - Aprende

Cierre

Los métodos de ensembling permiten:

  • Reducir varianza
  • Mejorar precisión
  • Capturar patrones complejos

Pero:

Requieren cuidado para evitar overfitting.