Assemblage de modèles

Remporter une compétition Kaggle en Python

Yauhen Babakhin

Kaggle Grandmaster

Assemblage de modèles

conception d'un ensemble pour une solution gagnante dans la compétition Kaggle

Remporter une compétition Kaggle en Python

Fusion 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
Remporter une compétition Kaggle en Python

Fusion 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
Remporter une compétition Kaggle en Python

Fusion 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}}$$

Remporter une compétition Kaggle en Python

Empilement de modèles

 

  1. Scinder l'entraînement 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 caractéristiques
  6. Prédire sur les données de test avec le modèle de niveau 2
Remporter une compétition Kaggle en Python

Exemple d'empilement

ID entraînement 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 ?
Remporter une compétition Kaggle en Python

Exemple d'empilement

ID entraînement feature_1 ... feature_N Cible
1 0.55 ... 1.37 1
2 0.12 ... -2.50 0
3 0.65 ... 3.14 0

 

ID entraînement feature_1 ... feature_N Cible
4 0.10 ... 2.87 1
5 0.54 ... -0.10 0
Remporter une compétition Kaggle en Python

Exemple d'empilement

ID entraînement feature_1 ... feature_N Cible
1 0.55 ... 1.37 1
2 0.12 ... -2.50 0
3 0.65 ... 3.14 0

 

ID entraînement 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

Remporter une compétition Kaggle en Python

Exemple d'empilement

ID entraînement 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
Remporter une compétition Kaggle en Python

Exemple d'empilement

ID entraînement 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
Remporter une compétition Kaggle en Python

Exemple d'empilement

ID entraînement 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 niveau 2 sur la partie 2

Remporter une compétition Kaggle en Python

Exemple d'empilement

ID entraînement 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 par empilement
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
Remporter une compétition Kaggle en Python

Passons à la pratique !

Remporter une compétition Kaggle en Python

Preparing Video For Download...