Assemblage de modèles

Gagner une compétition Kaggle en Python

Yauhen Babakhin

Kaggle Grandmaster

Assemblage de modèles

schéma d’ensemble d’une solution gagnante au concours Kaggle

Gagner une compétition Kaggle en Python

Blending de modèles

  • Problème de régression
  • Entraîner deux modèles différents : A et B
  • Prédire sur les données de test :
ID test Prédiction modèle A Prédiction modèle B
1 1,2 1,5
2 0,1 0,4
3 5,4 7,2
Gagner une compétition Kaggle en Python

Blending de modèles

 

ID test Prédiction modèle A Prédiction modèle B Moyenne arithmétique
1 1,2 1,5 1,35
2 0,1 0,4 0,25
3 5,4 7,2 6,30
Gagner une compétition Kaggle en Python

Blending de modèles

 

Moyenne arithmétique

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

Moyenne géométrique

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

Gagner une compétition Kaggle en Python

Stacking de modèles

 

  1. Scinder les données train en deux parties
  2. Entraîner plusieurs modèles sur la Partie 1
  3. Prédire sur la Partie 2
  4. Prédire sur les données de test
  5. Entraîner un nouveau modèle sur la Partie 2 en utilisant les prédictions comme features
  6. Prédire sur les données de test avec le modèle de 2e niveau
Gagner une compétition Kaggle en Python

Exemple de stacking

ID train feature_1 ... feature_N Cible
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 test feature_1 ... feature_N Cible
11 0,49 ... -2,32 ?
12 0,32 ... 1,15 ?
13 0,91 ... 0,81 ?
Gagner une compétition Kaggle en Python

Exemple de stacking

ID train feature_1 ... feature_N Cible
1 0,55 ... 1,37 1
2 0,12 ... -2,50 0
3 0,65 ... 3,14 0

 

ID train feature_1 ... feature_N Cible
4 0,10 ... 2,87 1
5 0,54 ... -0,10 0
Gagner une compétition Kaggle en Python

Exemple de stacking

ID train feature_1 ... feature_N Cible
1 0,55 ... 1,37 1
2 0,12 ... -2,50 0
3 0,65 ... 3,14 0

 

ID train feature_1 ... feature_N Cible
4 0,10 ... 2,87 1
5 0,54 ... -0,10 0

Entraîner les modèles A, B, C sur la Partie 1

Gagner une compétition Kaggle en Python

Exemple de stacking

ID train feature_1 ... feature_N Cible 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 test feature_1 ... feature_N Cible 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
Gagner une compétition Kaggle en Python

Exemple de stacking

ID train Cible A_pred B_pred C_pred
4 1 0,71 0,52 0,98
5 0 0,45 0,32 0,24

 

IDs test Cible 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
Gagner une compétition Kaggle en Python

Exemple de stacking

ID train Cible A_pred B_pred C_pred
4 1 0,71 0,52 0,98
5 0 0,45 0,32 0,24

 

IDs test Cible 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

Entraîner le modèle de 2e niveau sur la Partie 2

Gagner une compétition Kaggle en Python

Exemple de stacking

ID train Cible A_pred B_pred C_pred
4 1 0,71 0,52 0,98
5 0 0,45 0,32 0,24

 

IDs test Cible A_pred B_pred C_pred Prédiction 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
Gagner une compétition Kaggle en Python

Passons à la pratique !

Gagner une compétition Kaggle en Python

Preparing Video For Download...