Vous êtes sur la page 1sur 31

Data Science en pratique

Arthur Llau

Safety Line – Université Pierre et Marie Curie


arthur.llau@safety-line.fr

7 Février 2018.

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 1 / 31


Cours 6: Models Ensembling

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 2 / 31


Sommaire
1 Introduction
Pourquoi agréger des modèles ?
Machines et données utilisées
2 Averaging ou blending
Aggrégation naı̈ve
Aggrégation convexe
Exponentially Weigthed Aggregate
3 Bagging
4 K-Folds Scheme
5 Stacking
Stacking simple
K-Folds stacking
6 Pseudo-Labeling
7 Conclusion
Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 3 / 31
Introduction
Pourquoi agréger des modèles ?

Idée simple : Améliorer les prédictions en utilisant celles de plusieurs


modèles aussi appelés machines.

Cette intuition provient du fait que certains modèles semblent prédire


mieux certaines observations que d’autres. Pourquoi ne pas utiliser le
maximum de connaissances apportées dans ce cas ?

Machine LR RF NB Ensemble
Mean AUC 0.90 0.93 0.91 0.96
Std AUC 0.05 0.05 0.04 0.05
Table: Exemple: Performance sur le jeu de données Iris

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 4 / 31


Introduction
Pourquoi agréger ces modèles ?

Figure: Visualisation du problème précédent

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 5 / 31


Introduction
Notations

Les notations suivantes seront utilisées dans la suite du cours :


∀i ∈ {1, .., N} Mi , est une machine (RF,LR...)
∀k ∈ {1, .., K } fk , est une version d’une machine
D t = {X t , Y t } avec t = train,test ou validation représente les jeux
de données correspondants.

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 6 / 31


Introduction
Machines et données utilisées

Pour illustrer ce cours, nous allons chercher à prédire le prix des maisons
du célèbre jeu de données Boston house-prices dataset. C’est donc un
problème de régression. Le jeu d’apprentissage est composé de
379 observations pour 13 features et, le jeu de test possède 127 observations.

Les modèles utilisés sont les suivants:


Une régression linéaire simple (Lr)
Un KNN avec k = 5 (Knn)
Un arbre de décision simple (Tree)

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 7 / 31


Introduction
Machines et données utilisées

La métrique utilisée est la MSE:


n
1X
MSE = (Yi − Ŷi )2 .
n
i=1

Les machines ont les performances suivantes sur le jeu de données de test.

Machine Lr Knn Tree


MSE 21.9 46.7 29.9
Table: Performances initiales sur le jeu de données

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 8 / 31


Averaging ou Blending

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 9 / 31


Averaging ou Blending
Principe naı̈f

Le principe naı̈f de l’agrégation repose sur l’idée de moyenner les


prédictions de plusieurs machines qui semblent efficaces dans notre
problème. Cette technique permet de réduire la variance et donc
d’améliorer les précisions.
Il suffit d’évaluer plusieurs machines Mi , de choisir les N plus efficaces sur
un jeu de validation puis d’agréger leurs prédictions par moyenne, ou
médiane.
Une des variantes de cette méthode, la plus efficace, est l’agrégation
convexe.

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 10 / 31


Averaging ou Blending
Agrégation convexe

L’agrégation convexe suit le même principe qu’une moyenne pondérée.


C’est-à-dire qu’on a
N
X
ŷ = wi M̂i (X Test ),
i=1

où
N
X
wi = 1.
i=1

Les poids wi peuvent alors être déterminés de manière brute force, ou en


résolvant un simple problème d’optimisation convexe.
Attention, si le nombre de machines est élevé, cela peut être long !

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 11 / 31


Averaging ou Blending
Exponentially Weighted Aggregate

L’agrégation à l’aide de poids exponentiel (EWA) est une autre méthode


d’agrégation qui vise à mettre de l’importance sur les machines ayant un
risque faible. Les poids wi sont définis de la manière suivante :
−ˆri
wi = exp( ),
λ
avec λ un paramètre global appelé température et rˆi le risque de la
machine i. Le choix de λ est important :
si λ est grand alors wi tend 1, les poids sont uniformes
si λ tend vers 0, alors l’agrégation ne favorise que la machine au
risque le plus faible
Ce paramètre se calibre grâce à une grid search.

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 12 / 31


Averaging ou Blending
Exemple

Évaluons les trois méthodes présentées :

Machine Lr Knn Tree Moyenne Convexe EWA


MSE 21.9 46.7 29.9 17.3 14.6 15.2
Table: Performance sur le jeu de données

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 13 / 31


Bagging

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 14 / 31


Bagging
Principe

Le bagging est une technique d’amélioration des prédictions reposant sur


l’idée de moyenner de très différentes versions d’une même machine. Cette
méthode permet de contrôler le trade-off biais-variance.
De manière mathématique en considérant (fˆk )i=1...K une collection
d’estimateurs de différentes versions de la même machine, on a :
K
X
preds = fˆk (test)
k=1

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 15 / 31


Bagging
Paramétrisation

Beaucoup de paramètres influent sur la performance d’une machine.


Néanmoins, quelques paramètres ressortent du lot pour améliorer les
prédictions grâce au bagging :
La seed, si c’est un algorithme avec de l’aléatoire
Les paramètres de sampling et bootstrapping
On pourrait également modifier les paramètres spécifiques à l’algorithme
en plus de ceux cités précédemment.

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 16 / 31


Bagging
Exemple

Le seul modèle qui dispose de paramètres d’échantillonnage dans ceux


choisis pour l’exemple est l’arbre décisionnel.

Machine Lr Knn Tree Tree Bagging


MSE 21.9 46.7 29.9 17.9
Table: Performance sur le jeu de données

Pour améliorer grandement les résultats de l’agrégation cités plus haut,


nous pourrions simplement agréger des machines issues du bagging.

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 17 / 31


K-Folds Scheme

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 18 / 31


K-Folds Scheme
Principe

Le schéma d’amélioration par K-Folds repose sur l’idée du bagging. On va


découper notre jeu de données d’apprentissage en K folds, et apprendre la
même machine, avec la même version, sur chacun des folds. Puis, pour
chacune des machines, nous allons prédire le jeu de test et simplement
moyenner les résultats (schéma).
Cela permet de bien tenir compte des possibles outliers et surtout de
réduire la variance.

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 19 / 31


K-Folds Scheme
Exemple

Regardons les performances de notre arbre décisionnel :

Machine Lr Knn Tree Tree 5-Folds


MSE 21.9 46.7 29.9 15.1
Table: Performance sur le jeu de données

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 20 / 31


Stacking

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 21 / 31


Stacking
Idée

L’idée du stacking provient de l’agrégation par moyenne. Dans un premier


temps, comme dans l’algorithme précédent, nous apprenons nos machines
sur D Train l’ensemble d’apprentissage. Une fois cela effectué, les
prédictions de chaque machine sont stockées dans une nouvelle matrice
notée X’. Connaissant les vraies valeurs des prédictions, on peut alors
construire un estimateur sur D Test . Il peut s’agir d’un modèle
paramétrique ou non comme une régression linéaire ou un réseau de
neurones (Algorithme 1).
On trouve principalement deux versions du stacking, une dite simple et
une utilisant le principe du K-Folds Scheme.

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 22 / 31


Couche 1: Split D Train = D Tr D Va
S
for ∀t = 1...T do
(a) Apprendre Mt sur D Tr .
(b) Construire: D 0 = {Xi0 , Yi }i=1..n où Xi0 = {M̂1 (XiVa ), ..., M̂T (XiVa ).}
end
Couche 2: Apprendre h sur D 0 .
Machine finale:

Ĥ(x) = ĥ(M̂1 (XiTe ), ..., M̂T (XiTe ))

Algorithm 1: Agrégation par stacking


Remarquons que si h est une somme il s’agit alors de l’agrégation par
moyenne.

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 23 / 31


Stacking
Stacking K-Folds

Une variante de cet algorithme, très utilisée en pratique, permet de réduire


la variance et d’augmenter la robustesse de la couche 2. Ce nouvel
algorithme (Algorithme 2) utilise une décomposition en K-folds du jeu
d’apprentissage pour les modèles de la couche 1. Le K-folds revenant à
décomposer D Tr en K sous-ensembles. Les modèles de la première couche,
apprendront sur (k − 1) sous-ensembles et prédirons le k-ème. Cette
opération sera effectuée K fois, les prédictions sur chaque sous-ensemble
seront alors agrégées par moyenne pour se retrouver dans le cas de
l’algorithme du stacking (Algorithme 1.

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 24 / 31


Stacking
Stacking K-Folds

K
S
Couche 1: Découper D tel que D = Dk .
k=1
for k = 1,..,K do
(a) Pour t = 1, ..., T apprendre Mtk sur D\Dk .
(b) Construire la base d’apprentissage pour la couche 2

{(X0k , Yk )} où X0k = {M̂1k (Xk ), ..., M̂Tk (Xk ).}

end
Couche 2: Apprendre h un estimateur sur l’ensemble des {(X0k , Yk )}.
for t= 1,...,T do
Apprendre M̂t sur D.
end
Machine finale:
Ĥ(x) = ĥ(M̂1 (x), ..., M̂T (x))
Algorithm 2: Stacking avec K-folds
Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 25 / 31
Stacking
Exemple

Pour le modèle de couche 2 un simple régression linéaire a été choisie.

Machine Lr Knn Tree Stacking Stacking 5-Folds


MSE 21.9 46.7 29.9 17.1 10.9
Table: Performance sur le jeu de données

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 26 / 31


Conclusion

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 27 / 31


Conclusion

Il existe évidemment beaucoup d’autres façons d’assembler des modèles,


on retrouve par exemple:
StackNet - Marios Michailidis
https://github.com/kaz-Anova/StackNet
L’apprentissage en cascade - Koller et al.
https://ai.stanford.edu/ koller/Papers/Heitz+al:NIPS08a.pdf
COmBined Regression Alternative (COBRA) - Biau et al.
https://arxiv.org/pdf/1303.2236.pdf

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 28 / 31


Conclusion

Figure: Solution première place du Kaggle : Truly Native?


Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 29 / 31
Conclusion

Toutes les méthodes d’amélioration des prédictions n’ont pas les mêmes
performances selon le jeux de données et les modèles choisis. Soyez
attentifs à votre problématique, à vos résultats, et essayez beaucoup de
variantes de vos modèles.

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 30 / 31


The End

Arthur Llau (SL-UPMC) Data Science en pratique 7 Février 2018. 31 / 31

Vous aimerez peut-être aussi