Ensemble de modelos

Vencendo uma competição do Kaggle em Python

Yauhen Babakhin

Kaggle Grandmaster

Ensemble de modelos

design de ensemble de uma solução vencedora na competição Kaggle

Vencendo uma competição do Kaggle em Python

Blending de modelos

  • Problema de regressão
  • Treine dois modelos diferentes: A e B
  • Faça previsões no teste:
ID teste Previsão do Modelo A Previsão do Modelo B
1 1.2 1.5
2 0.1 0.4
3 5.4 7.2
Vencendo uma competição do Kaggle em Python

Blending de modelos

 

ID teste Previsão do Modelo A Previsão do Modelo B Média aritmética
1 1.2 1.5 1.35
2 0.1 0.4 0.25
3 5.4 7.2 6.30
Vencendo uma competição do Kaggle em Python

Blending de modelos

 

Média aritmética

$$arithmetic = \frac{1}{n}\sum_{i=1}^{n}{x_i}$$

Média geométrica

$$geometric = \Bigg({\prod_{i=1}^{n}{x_i}}\Bigg)^{\frac{1}{n}}$$

Vencendo uma competição do Kaggle em Python

Stacking de modelos

 

  1. Divide o treino em duas partes
  2. Treina vários modelos na Parte 1
  3. Faz previsões na Parte 2
  4. Faz previsões no teste
  5. Treina um novo modelo na Parte 2 usando previsões como features
  6. Faz previsões no teste com o modelo de 2º nível
Vencendo uma competição do Kaggle em Python

Exemplo de stacking

ID treino 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
IDs teste feature_1 ... feature_N Target
11 0.49 ... -2.32 ?
12 0.32 ... 1.15 ?
13 0.91 ... 0.81 ?
Vencendo uma competição do Kaggle em Python

Exemplo de stacking

ID treino feature_1 ... feature_N Target
1 0.55 ... 1.37 1
2 0.12 ... -2.50 0
3 0.65 ... 3.14 0

 

ID treino feature_1 ... feature_N Target
4 0.10 ... 2.87 1
5 0.54 ... -0.10 0
Vencendo uma competição do Kaggle em Python

Exemplo de stacking

ID treino feature_1 ... feature_N Target
1 0.55 ... 1.37 1
2 0.12 ... -2.50 0
3 0.65 ... 3.14 0

 

ID treino feature_1 ... feature_N Target
4 0.10 ... 2.87 1
5 0.54 ... -0.10 0

Treina modelos A, B, C na Parte 1

Vencendo uma competição do Kaggle em Python

Exemplo de stacking

ID treino feature_1 ... feature_N Target A_pred B_pred C_pred
4 0.10 ... 2.87 1 0.71 0.52 0.98
5 0.54 ... -0.10 0 0.45 0.32 0.24

 

IDs teste feature_1 ... feature_N Target A_pred B_pred C_pred
11 0.49 ... -2.32 ? 0.62 0.45 0.81
12 0.32 ... 1.15 ? 0.31 0.52 0.41
13 0.91 ... 0.81 ? 0.74 0.55 0.92
Vencendo uma competição do Kaggle em Python

Exemplo de stacking

ID treino Target A_pred B_pred C_pred
4 1 0.71 0.52 0.98
5 0 0.45 0.32 0.24

 

IDs teste Target 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
Vencendo uma competição do Kaggle em Python

Exemplo de stacking

ID treino Target A_pred B_pred C_pred
4 1 0.71 0.52 0.98
5 0 0.45 0.32 0.24

 

IDs teste Target 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

Treina modelo de 2º nível na Parte 2

Vencendo uma competição do Kaggle em Python

Exemplo de stacking

ID treino Target A_pred B_pred C_pred
4 1 0.71 0.52 0.98
5 0 0.45 0.32 0.24

 

IDs teste Target A_pred B_pred C_pred Predição do stacking
11 ? 0.62 0.45 0.81 0.73
12 ? 0.31 0.52 0.41 0.35
13 ? 0.74 0.55 0.92 0.88
Vencendo uma competição do Kaggle em Python

Vamos praticar!

Vencendo uma competição do Kaggle em Python

Preparing Video For Download...