Académique Documents
Professionnel Documents
Culture Documents
C’est un honneur et avec plaisir pour nous de vous présenter, ici présent, le fruit de notre
résumé concernant le livre MACHINE LEARNING avec SCIKIT-LEARN.
Page 2
Page 3
Page 4
Le résumé
Page 5
o Le Bagging et le Pasting
o Forêts aléatoires
o Le Boosting
o Le Stacking
Supposons que vous ayez entraîné quelques classificateurs, chacun d’entre eux atteignant
une exactitude de 80 % environ.
Voyons la photo !!
Pour y mettre plus de précision, pour savoir lequel des classificateurs est meilleur, la
classification se divise en deux.
Page 7
Page 8
Alors les classificateurs à vote rigide c’est quoi ? Quel est son principe d’entrainement ?
Il consiste à agréger les prédictions de chacun des classificateurs et de prédire la classe qui
obtient le plus grand nombre de votes.
Page 9
Ce type de classificateur permet de prédire la plus grande moyenne des probabilités sur l’ensemble
des classificateurs.
Comme la figure nous montres, c’est la loi du plus grands nombre qui s’applique.
Le vote souple est meilleur que le vote rigide, parce qu’il accorde plus de poids aux votes dont
l’indice de confiance est élevé
3. Onja [page 10 – 16] du PowerPoint
Page 10
Comme nous l’avons vu précédemment, l’un des moyens d’obtenir un ensemble de classificateurs
diversifiés consiste à utiliser des algorithmes d’entraînement très différents.
Page 11
● Le bagging (tirage avec remise) sur-ajuste les données d’apprentissage. Par contre, il fournit
souvent de simple (moins complexe) et meilleur modèle et un biais élevé.
• Sur-ajustement : overfitting, le modèle fonctionne bien sur les données d’apprentissage, mais
qu’il ne se généralise pas bien (ex : chauffeur de taxi).
• Biais : erreur de généralisation due à de mauvaises hypothèses, comme par exemple de supposer
que les données sont linéaires lorsqu’elles sont quadratiques. Un modèle à haut biais a plus de
chances de sous-ajuster les données d’entraînement. [chap 4]
• Variance : erreur due à la sensibilité excessive du modèle à de petites variations dans le jeu
d’entraînement. Un modèle ayant beaucoup de degrés de liberté (comme par exemple un
modèle polynomial de degré élevé) aura vraisemblablement une variance élevée, et par
conséquent sur-ajustera les données d’entraînements. [chap 4]
• Erreur irréductibles : elle est due au bruit présent dans les données. Le seul moyen de réduire
cette composante de l’erreur consiste à nettoyer les données. [chap 4]
Page 12
On constate que à chaque échantillonnage aléatoire, la dispersion des données ne sont pas égaux.
Page 13
Ceci concerne plus le bagging que le pasting. Car la liste des observations hors sélection peut
augmenter durant le jeu d’entrainement.
L’évaluation hors sélection permet d’évaluer l’ensemble (des observations) sans avoir besoin de
recourir à une validation séparée ou une validation croisée.
• Validation croisée : est une technique qui permet de comparer des modèles (pour en faire la
sélection et pour ajuster des hyperparamètres) pour savoir et sélectionner la méthode qui
fonctionne le mieux, sans nécessiter un ensemble de validation séparée. Ceci préserve de
précieuses données d’entrainement. [chap 1]
• Un modèle : est une version simplifiée des observations comme par exemple linéaire,
polynomial. [chap 1]
Page 14
● Sont utiles pour des données d’entrée de grande dimension comme les images.
● Pour se faire, on procède par l’échantillonnage qui constitue la méthode d’ensemble des
parcelles aléatoires ; il consiste à conjoindre des observations et des variables. Elle augmente
aussi le biais.
● Mais tirer au sort certaines variables constitue la méthode des sous-espaces aléatoires.
Page 15
FORÊTS ALEATOIRES
Elles se divisent en 2
Page 16
Une fois encore le compromis consiste à accepter un peu plus de biais en échange d’une diminution
de la variance. Cela rend aussi ces extra-arbres bien plus rapides à entraîner que les forêts aléatoires
ordinaires.
● Une variable importante aura tendance en moyenne à réduire davantage l’impureté Gini.
● Impureté Gini n’est d’autre qu’un algorithme qui cherche à savoir si les données sont
identiques ou variés. Sa valeur est nulle lorsque les données sont identiques.
● Pour se faire, il faut calculer la réduction moyenne d’impureté sur l’ensemble des nœuds où
cette variable intervient au travers de l’ensemble des arbres de la forêt aléatoire. Cette
moyenne est pondérée par l’importance de chaque nœud et le résultat est normalisé pour
que la somme des importances des variables soit égale à 1.
4. Hosana [page 17 – 25] du PowerPoint
Page 17
L’idée générale de la plupart des méthodes de boosting est d’entrainer des prédicteurs l’un après
l’autre, chacun s’efforçant de corriger son prédécesseur.
Il y a 2 types de boosting:
- Adaboost
- Boosting de gradient
Page 18
Pour l’adaboost, l’un des moyens de corriger son prédécesseur consiste à prêter plus d’attention aux
observations d’entrainement que ce prédécesseur a sous-ajustées.
Pour ce type de classificateur, il nécessite un classificateur de base tel qu’un arbre de décision pour
effectuer des prédictions ; et un second classificateur utilisant les poids modifiés est alors entrainé
puis effectue des prédictions et ainsi de suite.
Page 19
Examinons de plus près l’algorithme AdaBoost. Chaque poids d’observation w(i) vaut initialement
1/m .
Un premier prédicteur est entraîné et son taux d’erreur pondéré r1 est calculé sur le jeu
d’entraînement.
Page 20
Le poids αj du prédicteur est alors calculé en utilisant l’équation , où η est l’hyperparamètre de taux
d’apprentissage (dont la valeur par défaut est 1). Plus le prédicteur est exact, plus son poids sera
élevé. S’il ne fait que deviner au hasard, alors son poids sera proche de zéro. Mais s’il se trompe le
plus souvent (c.-à-d. si son exactitude est moindre qu’en choisissant au hasard), son poids sera
négatif.
Page 21
Les poids des observations sont ensuite mis à jour en utilisant l’équation : les observations mal
classées sont « boostées ».
À partir de cette équation nous obtiendrons une nouvelle pondération à partir des POIDS pour
entrainer les prédicteurs qui vont améliorer les POIDS suivant.
Page 22
Pour effectuer des prédictions, AdaBoost calcule simplement les prédictions de tous les prédicteurs
et les pondère à l’aide des poids αj des prédicteurs. La classe prédite est celle qui reçoit la majorité
des votes pondérés.
Page 23
Le boosting gradient travaille par ajout séquentiel de prédicteur à un ensemble, chacun d’eux
corrigeant son prédécesseur. Cependant, au lieu de modifier légèrement les poids des observations à
chaque itération comme le fait AdaBoost elle tente d’ajuster un nouveau prédicteur aux erreurs
résiduelles du prédicteur précédent.
Ces figurent illustres l’ évolution d’une prédiction à traves 3 couches de prédicteur utilisant la
méthode GBRT.
Page 24
celui de gauche n’a pas suffisamment d’arbres pour ajuster convenablement le jeu d’entraînement,
tandis que celui de droite en a trop et surajuste.
Alors une question se pose comment faire pour obtenir le nombre de prédicteur exacte ??
Page 25
Pour obtenir le nombre d’arbre optimal, il nous faut un arrêt précoce du jeu d’entrainement; ce
dernier nous donne 2 méthodes
Le stacking, l’idée est simple, c’est à peu près le dérivé des fonctions triviales (tel que le vote
majoritaire), car on entraine un modèle pour agréger les prédictions des prédicteurs précédents ; ce
modèle est nommé BLENDER.
Page 27
● On entraine les prédicteurs avec le deuxième sous-ensemble mise en réserve, ceci garantit
que les prédictions seront « propres » ; car les prédicteurs n’ont jamais vu ces observations
durant l’entrainement.
Page 28
Nous pouvons créer un nouveau jeu d’entraînement en utilisant les valeurs prédites comme variables
d’entrée (ce nouveau jeu d’entraînement est donc tridimensionnel) et en conservant les valeurs
cibles. Le blender est entraîné sur ce nouveau jeu d’entraînement, et par conséquent il apprend à
prédire la valeur cible à partir des prédictions de la première couche
Page 29
Il est en fait possible d’entraîner plusieurs blenders différents de cette façon (p. ex. l’un avec une
régression linéaire, l’autre avec une régression par forêt aléatoire, et ainsi de suite) : nous obtenons
une couche complète de blenders. L’astuce consiste à partager le jeu d’entraînement en trois sous-
ensembles : le premier sert à entraîner la première couche, le second est utilisé pour créer le jeu
d’entraînement utilisé pour entraîner la deuxième couche (en utilisant les prédictions faites par les
prédicteurs de la première couche) et le troisième est utilisé pour créer le jeu d’entraînement pour
entraîner la troisième couche (en utilisant les prédictions faites par les prédicteurs de la deuxième
couche). Une fois cela fait, il est possible d’effectuer une prédiction sur une nouvelle instance en
parcourant tour à tour toutes les couches, , comme illustré sur la figure
Page 30
Première question :
Si vous avez entraîné cinq modèles différents sur les mêmes données d’entraînement et s’ils ont tous
atteint une précision de 95 %, y a-t-il un moyen de combiner ces modèles pour obtenir de meilleurs
résultats ? Si oui, comment ? Sinon, pourquoi ?
Réponse :
Si vous avez entraîné cinq modèles différents et qu’ils ont tous atteint une précision de 95 %, vous
pouvez essayer de les combiner en un ensemble à vote qui donnera souvent des résultats encore
meilleurs. Ceci fonctionne mieux si les modèles sont très différents (p. ex. SVM, arbre de décision,
régression logistique, etc.). Il est même préférable de les entraîner sur des observations
d’entraînement différentes (c’est tout l’intérêt des ensembles de type bagging ou pasting), mais si ce
n’est pas le cas, cette solution fonctionnera quand même à condition que les modèles soient très
différents.
Page 32
Seconde question :
Quelle est la différence entre les classificateurs à vote rigide et à vote souple ?
Réponse :
Un classificateur à vote rigide compte simplement les votes de chacun des classificateurs de
l’ensemble et choisit la classe qui a obtenu le plus de votes. Un classificateur à vote souple calcule
pour chaque classe la moyenne des estimations des probabilités d’obtenir cette classe et choisit la
classe ayant la plus forte probabilité moyenne. Ceci donne plus de poids aux votes dont l’indice de
confiance est élevé et donne souvent de meilleurs résultats, mais ce n’est possible que si le
classificateur peut calculer les probabilités des classes (pour les classificateurs SVM de Scikit-Learn
par exemple, vous devez définir probability=True).
6. Mendrika [page 33 – 38] du PowerPoint
Page 33
Troisième question :
Est-il possible d’accélérer l’entraînement d’un ensemble de bagging en le distribuant entre plusieurs
serveurs ? Même question pour des ensembles de type pasting, boosting, forêt aléatoire ou
stacking ?
Réponse:
Il est tout à fait possible d’accélérer l’entraînement d’un ensemble de bagging en le distribuant entre
plusieurs serveurs, étant donné que chaque prédicteur de l’ensemble est indépendant des autres. Il
en est de même pour les ensembles de type pasting et les forêts aléatoires, pour la même raison.
Cependant, chaque prédicteur d’un ensemble de boosting étant construit à partir du prédicteur
précédent, l’entraînement est nécessairement séquentiel : vous ne gagnerez rien à distribuer
l’entraînement entre plusieurs serveurs. En ce qui concerne les ensembles par empilement (ou
stacking), tous les prédicteurs d’une même couche sont indépendants les uns des autres et peuvent
par conséquent être entraînés en parallèle sur plusieurs serveurs. Cependant, les prédicteurs d’une
couche ne peuvent être entraînés qu’après la fin de l’entraînement des prédicteurs de la couche
précédente.
Page 34
Quatrième question :
Réponse :
Avec une évaluation hors sélection, chaque prédicteur de l’ensemble de bagging est évalué en
utilisant les observations sur lesquelles il n’a pas été entraîné (et qui ont été mises de côté). Ceci
permet d’obtenir une évaluation assez peu biaisée de l’ensemble sans nécessiter un jeu de validation
supplémentaire. Vous avez donc plus d’observations pour l’entraînement et votre ensemble donne
des résultats légèrement meilleurs.
Page 35
Cinquième question :
Qu’est-ce qui rend les extra-arbres plus aléatoires que les forêts aléatoires normales ? En quoi cette
part de hasard supplémentaire peut-elle aider ? Les extra-arbres sont-ils plus lents ou plus rapides
que les forêts aléatoires normales ?
Réponse:
Lors de la construction d’un arbre dans une forêt aléatoire, le partage de chacun des nœuds ne
s’effectue que sur un sous-ensemble aléatoire des variables. C’est vrai également pour les extra-
arbres, mais ils vont encore plus loin : au lieu de rechercher les meilleurs seuils possibles, comme le
font les arbres de décision ordinaires, ils utilisent des seuils aléatoires pour chaque variable. Cette
part de hasard supplémentaire agit comme une forme de régularisation : si une forêt aléatoire
surajuste les données d’entraînement, des extra-arbres donneront peut-être de meilleurs résultats.
De plus, étant donné que les extras-arbres ne recherchent pas les meilleurs seuils possibles, ils sont
bien plus rapides à entraîner que les forêts aléatoires. Cependant, lorsqu’il s’agit d’effectuer des
prédictions, ils ne sont ni plus rapides ni plus lents que les forêts aléatoires.
Page 36
Sixième question :
Si votre ensemble AdaBoost sous-ajuste les données d’entraînement, sur quels hyperparamètres
pouvez-vous jouer, et comment ?
Réponse:
Si votre ensemble AdaBoost sous-ajuste les données d’entraînement, vous pouvez tenter d’accroître
le nombre d’estimateurs ou de réduire les hyperparamètres de régularisation de l’estimateur de
base. Vous pouvez aussi essayer d’augmenter légèrement le taux d’apprentissage.
Page 37
Septième question :
● Réponse :
● Si votre ensemble à boosting de gradient surajuste le jeu d’entraînement, vous devez essayer
de diminuer le taux d’apprentissage. Vous pouvez aussi utiliser l’arrêt anticipé pour trouver
le bon nombre de prédicteurs (vous en avez probablement trop).
Page 38
Faisons une petite démonstration référençant par rapport à ce que nous avions parlé.
7. Ariela [page 39 – 41] du PowerPoint
Page 39
Conlusion
Page 40
• L’apprentissage de l’ensemble
Page 41
Ainsi se termine notre présentation, Monsieur, chers collègues merci de votre aimable attention !!!
Si vous avez des remarques ou des questions, alors posez-les, nous sommes disposés à y répondre.