Ensemble di modelli

Vincere una competizione Kaggle con Python

Yauhen Babakhin

Kaggle Grandmaster

Ensemble di modelli

design dell'ensemble di una soluzione vincente in una competition Kaggle

Vincere una competizione Kaggle con Python

Blending di modelli

  • Problema di regressione
  • Allena due modelli diversi: A e B
  • Fai previsioni sul test:
Test ID Pred. Modello A Pred. Modello B
1 1.2 1.5
2 0.1 0.4
3 5.4 7.2
Vincere una competizione Kaggle con Python

Blending di modelli

 

Test ID Pred. Modello A Pred. Modello B Media aritmetica
1 1.2 1.5 1.35
2 0.1 0.4 0.25
3 5.4 7.2 6.30
Vincere una competizione Kaggle con Python

Blending di modelli

 

Media aritmetica

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

Media geometrica

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

Vincere una competizione Kaggle con Python

Stacking di modelli

 

  1. Dividi il train in due parti
  2. Allena più modelli sulla Parte 1
  3. Fai previsioni sulla Parte 2
  4. Fai previsioni sul test
  5. Allena un nuovo modello sulla Parte 2 usando le previsioni come feature
  6. Fai previsioni sul test con il modello di 2° livello
Vincere una competizione Kaggle con Python

Esempio di stacking

Train 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
Test IDs feature_1 ... feature_N Target
11 0.49 ... -2.32 ?
12 0.32 ... 1.15 ?
13 0.91 ... 0.81 ?
Vincere una competizione Kaggle con Python

Esempio di stacking

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

 

Train ID feature_1 ... feature_N Target
4 0.10 ... 2.87 1
5 0.54 ... -0.10 0
Vincere una competizione Kaggle con Python

Esempio di stacking

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

 

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

Allena i modelli A, B, C sulla Parte 1

Vincere una competizione Kaggle con Python

Esempio di stacking

Train ID 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

 

Test IDs 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
Vincere una competizione Kaggle con Python

Esempio di stacking

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

 

Test IDs 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
Vincere una competizione Kaggle con Python

Esempio di stacking

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

 

Test IDs 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

Allena il modello di 2° livello sulla Parte 2

Vincere una competizione Kaggle con Python

Esempio di stacking

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

 

Test IDs Target A_pred B_pred C_pred Predizione 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
Vincere una competizione Kaggle con Python

Ayo berlatih!

Vincere una competizione Kaggle con Python

Preparing Video For Download...