Vous êtes sur la page 1sur 30

Méthodes Ensemblistes

Equipe Machine Learning Esprit 2021/2022 2


 Les méthodes ensemblistes on été introduites pour pallier aux problèmes liés aux arbres de décision.
 Les arbres de décision sont peu performants lorsque la variable à prédire est composée d’un grand
nombre de classes.
 L’inconvénient majeur des arbres de décision est leur instabilité. C’est-à-dire qu’une légère
modification des données peut causer une grande différence dans l’arbre construit.
 Par définition, « une méthode ensembliste est un ensemble de classifieurs individuels, qui sont
divers, mais précis, dont les précisions sont combinées par moyenne ou par vote pour donner une
décision plus précise » [Dietterich2000]

Equipe Machine Learning Esprit 2021/2022 3


 Deux familles de méthodes ensemblistes ont été proposées: Bagging & Boosting

▪ Bagging:

Introduit en 1996 est l’acronyme de Bootstrap Aggregating. C’est une technique utilisée pour
améliorer la performance de la classification des arbres de décision considérés comme classifieurs
faibles.

▪ L’objectif général de la technique de Bagging est de corriger l’instabilité des arbres de décision en
réduisant la variance de l’estimateur.

Equipe Machine Learning Esprit 2021/2022 4


▪ L’algorithme (par exemple l’arbre de décision) est entraîné sur ces sous-ensembles de données. Les

estimateurs obtenus sont moyennés.

▪ C’est la combinaison de ces multiples estimateurs « indépendants » qui permet de réduire la

variance.

▪ La méthode de bagging la plus utilisée

et qui donne d’excellents résultats est

« forêts aléatoires ».

Equipe Machine Learning Esprit 2021/2022 5


 Exemple: Random Forest

Equipe Machine Learning Esprit 2021/2022 6


Boosting:
 Introduit en 1996 est l’acronyme avec l’algorithme AdaBoost qui est l’acronyme de Adaptive
Boosting.
 Le boosting est une technique ensembliste dans laquelle les classifieurs ne sont pas créés
indépendamment (tel qu’il est le cas dans les approches Bagging), mais séquentiellement.
 Les classifieurs suivants apprennent des erreurs des classifieurs précédents.
 Par conséquent, les observations ont une probabilité différente d'apparaître dans les modèles suivants
et celles avec l'erreur la plus élevée apparaissent le plus.
 Les observations sont choisies en fonction de l'erreur.

Equipe Machine Learning Esprit 2021/2022 7


Boosting:
 Les classifieurs peuvent être choisis parmi plusieurs modèles tels que les arbres de décision, etc.
 Étant donné que les nouveaux classifieurs apprennent des erreurs commises par les classifieurs
précédents, il faut moins de temps et/ou itérations pour atteindre des prévisions réelles.
 Mais nous devons choisir les critères d'arrêt avec soin, sinon cela pourrait entraîner un sur-ajustement
des données d'entraînement.
 Le gradient Boosting, AdaBoost et Xgboost sont les algorithmes de Boosting les plus utilisés.

Equipe Machine Learning Esprit 2021/2022 8


 Contrairement à l’algorithme Random Forest, l’algorithme AdaBoost dans lequel une combinaison de
stumps est crée (Stumps Forest) , certains stumps possèdent plus d’influence ou d’importance, que
les autres au niveau de la classification finale.
 De plus, l’ordre avec lequel les arbres de décision sont crées n’est pas important si on utilise
l’algorithme Random Forest. Cette affirmation n’est plus valable avec l’algorithme Adaboost. L’erreur
introduite au niveau du premier stump influence la création du deuxième stump, et ainsi de suite. Par
conséquent, chaque stump est créé en tenant en considération les erreurs du stump précédent.

Equipe Machine Learning Esprit 2021/2022 9


Equipe Machine Learning Esprit 2021/2022 10
 Principes de l’algorithme AdaBoost

Douleurs Artères Poids du Maladie


• On se focalise sur ce dataset pour déterminer si une
thoracique obsturées patient cardiaque
personne est atteinte d’une maladie cardiaque ou
No Yes 125 No
pas.
No Yes 180 Yes • Dans Adaboost, on introduit le concepts de stump,

Yes No 210 No qui est un arbre de décision qui tient en


considération une seule variable pour avoir une
Yes Yes 167 Yes
décision.

Equipe Machine Learning Esprit 2021/2022 11


 Les stumps sont considérées comme « weak learners » ou apprenants faibles.
 Combiner des weak learners de manière appropriée permet de produire une modèle performant,
nettement meilleur que chaque modèle pris individuellement.

Douleurs Artères Poids du Maladie


thoracique obsturées patient cardiaque Douleurs Thoracique

No Yes 125 No
Yes No
No Yes 180 Yes

Yes No 210 No

Yes Yes 167 Yes

Equipe Machine Learning Esprit 2021/2022 12


Douleurs Artères Poids du Maladie
thoracique obsturées patient cardiaque
Objectif:
Yes Yes 205 Yes
Créer un Forêt de stumps avec Adaboost
No Yes 180 Yes afin de détecter si une personne est atteinte
Yes No 210 Yes d’une maladie cardiaque ou non.
Les variables explicatives sont:
Yes Yes 167 Yes
➢ Douleur thoracique
No Yes 156 No
➢ Artères obstruées
No Yes 125 No ➢ Poids du patient
Yes No 168 No

Yes Yes 172 No


Equipe Machine Learning Esprit 2021/2022 13
Douleurs Artères Poids du Maladie
Poids
thoracique obsturées patient cardiaque
• Initialement, un poids est attribué à chaque
Yes Yes 205 Yes 1/8
observation, qui indique combien il est
No Yes 180 Yes 1/8
important que cette observation soit
Yes No 210 Yes 1/8 correctement classée.
Yes Yes 167 Yes 1/8 • Initialement, toutes les observations auront
le même poids.
No Yes 156 No 1/8

No Yes 125 No 1/8 1


𝑝𝑜𝑖𝑑𝑠 =
𝑛𝑜𝑚𝑏𝑟𝑒 𝑑 ′ 𝑜𝑏𝑠𝑒𝑟𝑣𝑎𝑡𝑖𝑜𝑛𝑠
Yes No 168 No 1/8

Yes Yes 172 No 1/8


Equipe Machine Learning Esprit 2021/2022 14
Douleurs Artères Poids du Maladie
Poids
thoracique obsturées patient cardiaque

Yes Yes 205 Yes 1/8 • La deuxième étape consiste à créer le


No Yes 180 Yes 1/8 premier stump.

Yes No 210 Yes 1/8 Il s’agit d’identifier quelle variable parmi:


➢ Douleur thoracique,
Yes Yes 167 Yes 1/8
➢ Artères obstruées,
No Yes 156 No 1/8
➢ Poids du patient
No Yes 125 No 1/8 Classifie mieux les observations

Yes No 168 No 1/8

Yes Yes 172 No 1/8


Equipe Machine Learning Esprit 2021/2022 15
Douleurs Artères Poids du Maladie Douleurs Thoracique Indice de Gini
thoracique obsturées patient cardiaque

Yes Yes 205 Yes Yes Maladie Cardiaque No Maladie Cardiaque


Correct Incorrect Correct Incorrect 0.45
No Yes 180 Yes 3 2 2 1

Yes No 210 Yes Artères obsturées

Yes Yes 167 Yes Yes Maladie Cardiaque No Maladie Cardiaque


Correct Incorrect Correct Incorrect 0.5
No Yes 156 No 3 3 1 1

No Yes 125 No Poids du patient > 176

Yes No 168 No
Yes Maladie Cardiaque No Maladie Cardiaque
Correct Incorrect Correct Incorrect 0.2
Yes Yes 172 No 3 0 4 1
Equipe Machine Learning Esprit 2021/2022 16
Douleurs Artères Poids du Maladie
Poids
thoracique obsturées patient cardiaque
L’étape suivante consiste à calculer l’importance du
Yes Yes 205 Yes 1/8
1er stump crée, en évaluant sa classification.
No Yes 180 Yes 1/8
Poids du patient > 176
Yes No 210 Yes 1/8

Yes Maladie Cardiaque No Maladie Cardiaque


Yes Yes 167 Yes 1/8
Correct Incorrect Correct Incorrect
3 0 4 1
No Yes 156 No 1/8

No Yes 125 No 1/8 L’erreur totale d’un stump correspond à la somme

Yes No 168 No 1/8 des poids relatifs aux observations non correctement
classifiées
Yes Yes 172 No 1/8
Equipe Machine Learning Esprit 2021/2022 17
Douleurs Artères Poids du Maladie
Poids
thoracique obsturées patient cardiaque

Yes Yes 205 Yes 1/8 Poids du patient > 176

No Yes 180 Yes 1/8 Yes Maladie Cardiaque No Maladie Cardiaque


Correct Incorrect Correct Incorrect
Yes No 210 Yes 1/8 3 0 4 1

Yes Yes 167 Yes 1/8

No Yes 156 No 1/8 L’erreur totale de ce stump est 1/8.

1/8
L’erreur totale d’un stump est 0 pour un stump
No Yes 125 No
parfait, et est égale à 1 pour un mauvais stump.
Yes No 168 No 1/8

Yes Yes 172 No 1/8


Equipe Machine Learning Esprit 2021/2022 18
Douleurs Artères Poids du Maladie
Poids
thoracique obsturées patient cardiaque

Yes Yes 205 Yes 1/8 Poids du patient > 176

No Yes 180 Yes 1/8 Yes Maladie Cardiaque No Maladie Cardiaque


Correct Incorrect Correct Incorrect
Yes No 210 Yes 1/8 3 0 4 1

Yes Yes 167 Yes 1/8

No Yes 156 No 1/8 L’erreur totale est utilisée pour quantifier

1/8
l’importance (pertinence) d’un stump:
No Yes 125 No

Yes No 168 No 1/8 𝟏 𝟏 − 𝑬𝒓𝒓𝒆𝒖𝒓 𝑻𝒐𝒕𝒂𝒍𝒆


𝜶 = 𝐥𝐨𝐠 = 𝟎, 𝟗𝟕
𝟐 𝑬𝒓𝒓𝒆𝒖𝒓𝑻𝒐𝒕𝒂𝒍𝒆
Yes Yes 172 No 1/8
Equipe Machine Learning Esprit 2021/2022 19
Douleurs Artères Poids du Maladie
Poids
thoracique obsturées patient cardiaque
L’étape suivante consiste à mettre à jour les poids
Yes Yes 205 Yes 1/8
des observations, en augmentant le poids des
No Yes 180 Yes 1/8 observations mal classifiés et en diminuant les poids

Yes No 210 Yes 1/8 des observations bien classifiées.


Le nouveau poids pour les observations mal
Yes Yes 167 Yes 1/8
classifiés seront:
No Yes 156 No 1/8
𝒑𝒐𝒊𝒅𝒔𝒏𝒐𝒖𝒗 = 𝒑𝒐𝒊𝒅𝒔 ∗ 𝒆𝜶
No Yes 125 No 1/8 Le nouveau poids pour les observations
Yes No 168 No 1/8 correctement classées seront:

1/8
𝒑𝒐𝒊𝒅𝒔𝒏𝒐𝒖𝒗 = 𝒑𝒐𝒊𝒅𝒔 ∗ 𝒆−𝜶
Yes Yes 172 No
Equipe Machine Learning Esprit 2021/2022 20
Douleurs Artères Poids du Maladie Poids
Poids Nv Poids
thoracique obsturées patient cardiaque Normalisés
Les nouveaux poids seront
Yes Yes 205 Yes 1/8 0.05 0.07
normalisés
No Yes 180 Yes 1/8 0.05 0.07

Yes No 210 Yes 1/8 0.05 0.07

Yes Yes 167 Yes 1/8 0.33 0.49

No Yes 156 No 1/8 0.05 0.07

No Yes 125 No 1/8 0.05 0.07

Yes No 168 No 1/8 0.05 0.07

Yes Yes 172 No 1/8 0.05 0.07


Equipe Machine Learning Esprit 2021/2022 21
Douleurs Artères Poids du Maladie Poids
thoracique obsturées patient cardiaque Normalisés
• L’étape suivante consiste à créer le stump suivant.
Yes Yes 205 Yes 0.07
• En littérature, les poids seront utilisés pour les indices
No Yes 180 Yes 0.07
de Gini pour savoir quelle variable utiliser dans le
Yes No 210 Yes 0.07 stump suivant.
Yes Yes 167 Yes 0.49 • L’indice de Gini permettra de mettre en relief les
observations mal classées ( qui possèdent le poids le
No Yes 156 No 0.07
plus élevé)
No Yes 125 No 0.07

Yes No 168 No 0.07

Yes Yes 172 No 0.07


Equipe Machine Learning Esprit 2021/2022 22
Douleurs Artères Poids du Maladie Poids • Nous avons presque terminé, maintenant
Buckets
thoracique obsturées patient cardiaque Normalisés
l'algorithme sélectionne des nombres aléatoires de
Yes Yes 205 Yes 0.07 0-0.07 0 à 1.
• Étant donné que les enregistrements mal classés
No Yes 180 Yes 0.07 0.07-0.14
ont des poids d'échantillonnage plus élevés, la
Yes No 210 Yes 0.07 0.14-0.21 probabilité de sélectionner ces enregistrements est
très élevée.
Yes Yes 167 Yes 0.49 0.21-0.70
=> Supposons que les 8 nombres aléatoires pris par
No Yes 156 No 0.07 0.70-0.77 notre algorithme soient:
0,71 ; 0,5 ; 0, 8 ; 0,62 ; 0,3 ; 0,95 ; 0,01 ; 0,4 .
No Yes 125 No 0.07 0.77-0.84
Nous allons maintenant voir où ces nombres aléatoires

Yes No 168 No 0.07 0.84-0.91 se trouvent dans le bucket et en fonction de cela, nous
créerons notre nouvel ensemble de données ci-
Yes Yes 172 No 0.07 0.91-0.99 dessous.
Equipe Machine Learning Esprit 2021/2022 23
Douleurs Artères Poids du Maladie Maladie
Douleurs Artères Poids du
thoracique obsturées patient cardiaque thoracique obsturées patient cardiaque

Yes Yes 205 Yes No Yes 156 No

No Yes 180 Yes Yes Yes 167 Yes

Yes No 210 Yes No Yes 125 No

Yes Yes 167 Yes Yes Yes 167 Yes

No Yes 156 No Yes Yes 167 Yes

No Yes 125 No Yes Yes 172 No

Yes No 168 No Yes Yes 205 Yes

Yes Yes 172 No Yes Yes 167 Yes


Equipe Machine Learning Esprit 2021/2022 24
Douleurs Artères Poids du Maladie
Poids
thoracique obsturées patient cardiaque

No Yes 156 No 1/8 • On considère la nouvelle collection de données

Yes Yes 167 Yes 1/8 • On attribut les poids initiaux.


• Maintenant, l’erreur du dernier stump, est mise en
No Yes 125 No 1/8
relief dans cette nouvelle collection.
Yes Yes 167 Yes 1/8
• Et on va refaire le même travail pour les différents
Yes Yes 167 Yes 1/8 stumps.

Yes Yes 172 No 1/8

Yes Yes 205 Yes 1/8

Yes Yes 167 Yes 1/8


Equipe Machine Learning Esprit 2021/2022 25
 Pour demander la prédiction d’Adaboost sur une observation, il faut interroger chaque « weak

learner » et pondérer chaque réponse en fonction de la note α qu’ils ont obtenu.

 La prédiction du « strong learner » sera la moyenne de toutes les réponses (pondérées) des « weak

learner ».

Equipe Machine Learning Esprit 2021/2022 26


Exemple:

 Pour la prediction de la 1ère


observation nous calculons:
0.42 x 1 + 0.65 x (-1) + 0.38 x 1 + 1.1 x
1 = 1.25
 Selon le signe de résultat obtenu, la
classification sera effectuée:
▪ Si positif=> l’observation appartient à la
classe 1
▪ Si négatif => l’observation appartient à la
classe -1

Classe yes= 1
Donc Sign(1.25) = positif Classe No= -1
donc la 1ère observation appartient à la
classe 1 (yes).
Equipe Machine Learning Esprit 2021/2022 27
 AdaBoost est relativement robuste au surapprentissage dans les
ensembles de données à faible bruit.

 AdaBoost n'a que quelques hyperparamètres qui doivent être ajustés


pour améliorer les performances du modèle.

 AdaBoost est facile à comprendre et à visualiser.

Equipe Machine Learning Esprit 2021/2022 28


 Les données bruitées entraînent des mauvaises performances en raison
du fait que AdaBoost passe trop de temps à apprendre les cas extrêmes et
fausser les résultats.

 Par rapport à Random Forest et XGBoost , AdaBoost est moins


performant, lorsque des features non pertinents sont inclus dans le
modèle.

 AdaBoost est nettement plus lent que XGBoost

Equipe Machine Learning Esprit 2021/2022 29


Equipe Machine Learning Esprit 2021/2022 30

Vous aimerez peut-être aussi