bonjour et bienvenue dans cette 25e vidéo de la série python spécial machine learning aujourd'hui nous allons parler d'ensemble learning une technique qui consiste à entraîner plusieurs modèles de machine learning pour ensuite considérer l'ensemble de leurs prédictions pour ça il existe trois grandes méthodes qui sont le bas ging le boosting et le stacking et les algorithmes qui repose sur ses méthodes comme l'algorithme de random forest compte parmi les plus performants dans le monde d'une machine learning alors accrochez vous bien parce qu'aujourd'hui on va envoyer du lot c'est parti [Musique] pour commencer je vous propose de procéder
à une petite expérience prenons trois modèles de machine learning et utilisons les pour effectuer dix prédictions envers nous avons les prédictions correctes et en rouge les prédictions incorrect on voit donc que nos modèles ont chacun de leur côté effectué 70 % de bonnes réponses maintenant ce qui est intéressant c'est de constater que nos modèles n'ont pas tous fait les mêmes erreurs au même endroit du coup si on venait à combiner les résultats de nos différents modèles pour garder à chaque fois la prédiction majoritaire on voit qu'on obtiendrait au total neuf bonnes réponses sur 10 autrement
dit lorsqu'on regroupe nos modèles tous ensemble on obtient une meilleure performance que lorsqu'on utilise nos modèles chacun de leur côté intéressant n'est-ce pas et bien ce résultat n'est pas le fruit du hasard il vient d'un phénomène appelé de wisdom of the crowd l'idée c'est qu'une foule d'individus a plus souvent raison qu'un individu tout seul c'est une idée vieille comme le monde aristote lui-même avait écrit dans son ouvrage la politique que la majorité dont chaque membre prise à part n'est pas un homme remarquable est cependant au dessus des sommes supérieures autrement dit la ville une foule
d'amateurs est meilleur que celui d'un expert tout seul et on l'a bien vu ici en regroupant des modèles ayant chacun une performance de 70% on a pu atteindre une performance de 90% mais vous savez quoi on peut aller encore plus loin on peut par exemple réunir un grand nom deux modèles ayant à peine 51% performance et ensemble réussir à atteindre 99 % de bonnes réponses je sais ça paraît complètement incroyable mais c'est en fait dû à la loi des grands nombres plus vous avez de modèles et plus la performance collective s'approche des 100% [Musique] attention
toutefois pour que ça fonctionne il faut que notre foule respecte deux grands critères pour commencer il faut que les modèles c'est à dire les membres de la foule et au moins 50 % de performances car s'ils ont juste en dessous par exemple 49% alors la performance collective ne va pas convergé vers les 100 % mais vers les 0 % encore une fois c'est lié à la loi des grands nombres ensuite il faut que notre foule présente un minimum de diversité en effet si les gens au sein d'une foule le partage tous exactement les mêmes opinions
bah ça sert à rien de regrouper leurs avis autant demander à une seule personne ce qu'elle pense voilà pourquoi il est important de créer un minimum de diversité au sein de notre foule de telle sorte à ce que les faiblesses des uns soit compensée par les forces d autres au passage ça explique pourquoi dans les grandes entreprises on essaye toujours de créer des équipes mixtes avec des gens de différents âges de différents sexe de différentes cultures parce que c'est grâce à cette diversité que l'union fait la force donc pour résumer the wisdom of the crowd
est un phénomène lié à la loi des grands nombres qui fait qu'une foule d'individus a plus souvent raison qu'un expert tout seul à condition que cette foule soit suffisamment grande compétentes et diversifiée et en machine learning on peut utiliser ce concept pour créer des ensembles de modèles qui surpasse les performances des meilleurs modèles de machine learning au monde tout ce qu'il faut c'est satisfaire ces trois critères taille compétences diversité et pour ça on dispose de trois grandes techniques qui sont le bas ging le pouls sting et le stacking [Musique] pour commencer je vais vous parler
du buy in l'idée c'est de créer plusieurs entités d'un même modèle par exemple plusieurs arbres de décision et d'entraîner chacune de ces entités sur une portion aléatoire de notre data 7 pour ça on utilise une technique d'échantillonnage appelé bootstrapping et qui consiste à replacer après chaque tirage au sort les données qui ont été sélectionnés dans notre data 7 de cette manière on obtient une foule de modèle diversifié puisqu'ils n'ont pas tous été nourris avec les mêmes données mais qui partagent comme m certaines connaissances en commun et ça c'est très important pour obtenir des majorités en
faveur des bonnes réponses une fois qu'on a cette foule on peut donc regrouper les résultats de chaque modèle pour faire notre prédiction finale voilà donc en quelques mots ce qu'est le backing est l'exemple d'algorithmes le plus connu est celui de random forest c'est celui qu'on vient de voir ici d'ailleurs dans lequel ont choisi comme modèle de base l'arbre de décision vu qu'on crée un ensemble d'arbres sur la base de données tirées au hasard on obtient donc une forêt aléatoire une random forest et voilà c'est aussi simple que ça maintenant une autre façon d'obtenir des ensembles
de modèle qui soit diversifiée et d'utiliser une technique appelée boosting cette fois ci l'idée est d'entraîner l'un après l'autre plusieurs modèles relativement faible en demandant à chaque modèle d'essayer de corriger les erreurs effectuées par son prédécesseur du coup on obtient un ensemble de modèles parfaitement complémentaires dans lequel les faiblesses des uns sont compensées par les forces d autres et pour faire ça il existe deux grands algorithmes qui sont à dabou sts et gradient boosting donc vous le voyez bien l'idée de base est assez différente de celle du bas ging dans le bas ging on entraîne
nos modèles en parallèle alors qu'avec le boosting on entraîne au modèle en série dans le bas ging nos modèles sont tous relativement fort et sont chacun en situation dover fitting donc le fait de rassembler leurs prédictions permet de réduire la variance de la foule al'inverse avec le boosting nos modèles sont tous relativement faible ils sont chacun en situation john deere fitting mais en les construisant les uns par dessus les autres on est capable de réduire le biais de la foule gardez bien cette comparaison en tête parce qu'elle résume vraiment bien la différence entre le bas
ging et le boosting mais une chose très importante à savoir c'est que ces deux techniques même si les emplois des procédés différents permettent d'obtenir le même résultat c'est à dire obtenir un ensemble de modèles qu'ils soient compétents grand et diversifiée voilà pour finir il existe une troisième technique d'ensemble très populaire le stacking l'idée c'est d'entraîner un modèle de machine learning par dessus les prédictions de notre foule c'est à dire que au lieu de simplement rassembler les résultats de nos modèles pour retenir une prédiction majoritaire on demande à un modèle d'apprendre à reconnaître qui a tort
et qui a raison dans notre foule pour lui même prédire le résultat final c'est pas mal plutôt intéressant comme technique vous vous demandez peut-être ce que ça nous donne eh bien vous en faites pas je vous propose tout de suite de passer à l'action en voyant comment mettre en place des algorithmes de bag in dub ou sting et de stacking avec s'acquitte l'orne [Musique] ok alors dans ces kits l'orne on va retrouver tous les algorithmes dont on a parlé dans le module ensemble pour commencer dans ce module on dispose de deux classes tout simple la
classe voting classify heures et voting l'agresseur qui sont les implémentations les plus basiques qui puisse exister d'une foule wisdom of the crowd c'est à dire qu'avec ces deux classes on va tout simplement entrer la liste des modèles qu'on veut avoir dans notre foule les modèles vont être entraînés et leurs résultats vont être regroupées pour retenir le résultat général sous forme de vote c'est aussi simple que ça ensuite dans notre module ensemble on a les estimateurs qui permettent de faire du bag in donc va avoir bag in class i fire & banking un sort qui sont
tout simplement les estimateurs de base pour faire du backing puis on va retrouver random forest qui est réellement la technique la plus populaire celle que vous devez retenir dans cette vidéo d'ailleurs comme vous pouvez le voir on retrouve aussi isolation forest qu'on avait vu dans la vidéo précédente parce qu'en effet c'est un algorithme qui fait appel à la technique de bootstrapping que l'on a vu tout à l'heure ensuite dans le module ensemble on va retrouver les estimateurs de boosting donc principalement à dabou sts et gras dionne boosting je vous conseille de renverser de là et
pour finir et bien depuis la version 0.22 de cinq hits leur nom on a aussi deux classes qui nous permettent de faire du stacking donc si vous voulez utiliser cette dernière technique il faut penser à mettre à jour votre version de ces kits l'orne soit avec pipe soit avec condat maintenant il ne reste plus qu'à voir comment utiliser ces différents modèles avec ces kits l'orne donc avant toute chose je vous propose de générer un dataset par exemple avec le générateur michael woods et si vous voulez obtenir les mêmes résultats que moi dans cette vidéo vous
pouvez utiliser les settings suivant ensuite il faut bien sûr créer 1 37 et 1 thess 7 c'est toujours très important donc moi j'ai choisi les settings suivant et maintenant je vous propose de voir comment utiliser voting classify heures sur saône est à 7 donc vote in class 6 fire pour l'utiliser il faut commencer par définir quelles vont être les modèles qui vont le composent et les modèles qui va y avoir dans notre foule donc ici j'ai choisi sgd classify heures un des six jeunes filles classify heures et un kane embers classify heures maintenant juste avant
d'utiliser ses modèles dans voting classify heures je vous propose de voir quelle serait la performance de chacun de ces modèles sur notre dada c'est donc pour ça on va initialiser nos trois modèles puis on va écrire une boucle fort dans laquelle on va venir piocher l'un après l'autre nos différents modèles on va entraîner chaque modèle puis on va imprimer le nom du modèle et son score sur le test tout ça ça nous donne donc les performances suivantes 84% pour le sg des classes i nférieure 86% pour l'art de décision et 86 % pour les kane
et danse classique ailleurs à présent voyons comment utiliser le voting classify heures donc on va commencer par chargé depuis le module ensemble la classe voting classify heures et pour utiliser cette classe tout ce qu'on doit faire c'est d'entrer d'abord dans une liste les différents modèles qui vont composer notre foule vont pouvoir s'entraîner on va entrer trois topple parce que dans chaque topple on doit donner un surnom à notre modèle puis on doit indiquer de quel modèle il s'agit donc on va par exemple dire que d'abord on a le sgd et ça va être le modèle
1 puis on aura le tri et ça va être notre modèle 2 et enfin on aura un cas et nêne qui correspond à notre modèle 3 une fois qu'on a créé cette liste il y a une autre chose très importante qu'il faut passer dans notre voting classify heures c'est la technique de vote qui va être utilisé parce qu'en effet il existe deux types de vote le vote haarde et le vote soft en tout cas ça c'est pour les classify heures juste pour information lorsqu'on entraîne un régresse or c'est à dire qu'on doit prédire une valeur
quantitative par exemple le prix d'un appartement on va pas effectuer un vote en fait qu'on va effectuer une moyenne en même temps c'est logique si dans la vraie vie vous demandez à trois experts d'estimer le prix d'un appartement que l'un d'entre vous dis 300000 l'autre 350 milles et le dernier 310000 vous allez faire la moyenne de leurs prédictions voilà comment fonctionne voting régressant concernant voting classify heures c'est donc un peu différent on a deux techniques de vote à votre hard et un vote soft le vote à rld va consister à prendre la prédiction majoritaire c'est
à dire que si deux des trois experts ici pensent que c'est la classe triangle la bonne classe et bien c'est le triangle qui va l'emporter et pour le vote soft c'est en fait une technique dans laquelle on va accumuler les probabilités de chaque classe donc par exemple le premier expert a dit que c'était la classe triangle la bonne classe et il en est sûr à 70% mais le troisième expert quant à lui il pense que c'est la classe roncq et la bonne est à 90% donc si on fait le cumul de toutes ces probabilités de
toutes ses certitudes eh bien on va peut-être obtenir un autre résultat et dans ce cas là d'un exemple que je vous montre vieillit en l'occurrence on obtient un autre résultat donc la question que vous pouvez vous poser c'est quand est ce que j'utilise plutôt le vote haarde et quand est ce que j'utilise plutôt le vote soft alors en général on dit que le vote sorte est un peu meilleur lorsque nos modèles sont bien calibrée donc il vaut mieux l'utiliser quand c'est possible c'est à dire quand vous pouvez utiliser des modèles qui émettent des probabilités donc
si nous dans notre cas on écrit voting égale hard qu'on entraîne ce modèle en leur ajoutant à notre lit donc on va écrire modèle 4 qu'est ce qu'on obtient eh bien on obtient une performance de 87% autrement dit la technique d'ensemble a bel et bien fonctionné de wisdom of the crowd fonctionne mes amis voilà on est passé d'une foule de modèles qui avait 84 et 86 % de performances et l'apim on obtient 4 7% c'est pas mal un bon cela dit en général le voting classify heures n'est pas une technique d'ensemble très efficace pourquoi et
parce que il est très difficile avec cette technique de respecter le troisième critère du wisdom of the crowd c'est à dire le critère de diversité parce que là certes nos modèles sont tous performants mais en terme de prédiction à ils vont tous à peu près nous dire les mêmes choses donc ils sont pas très diversifié la meilleure façon de gagner de la diversité on l'a vu c'est grâce aux bas ging et au bout sting donc pour le baning je vais vous montrer comment utiliser bag in class i fire et random forrest lascif ailleurs mais ce
qu'on va voir peut être appliquée à tous les autres modèles de bagues in qui existe c'est à dire les modèles de régression les modèles extra tri et c'est donc pour créer ces modèles pour utiliser par exemple un bag in class i nférieure c'est très simple tout ce qu'il faut faire c'est déterminer un estimateur de base qu'on avec lequel on désire travailler donc ça peut être un arbre de décision ça peut être un cahier ans né et mort ça peut être un sg déclassifiés ça peut être n'importe quel estimateur qu'on désire donc par exemple on va
prendre un cannibale ce cas-ci fire et ensuite il ya un autre argument très important c'est de préciser le nombre des ch'ti matin qu'on va avoir dans notre foule par défaut il est égal à 100 et franchement je vous le dis quand vous faites du packing ya que ça à retenir vous pouvez si vous voulez explorer les autres hyper paramètres à utiliser mais ça c'est déjà très très bien donc ce qui nous reste à faire c'est d'entraîner notre modèle et de le tester et donc on voit qu'on obtient une performance de 89% donc on voit bien
que le backing est meilleur qu une simple technique de vote plus puissante et plus efficaces pourquoi parce qu'on arrive à créer de la diversité à présent si on veut utiliser l'algorithme de random forest et bien c'est encore plus simple parce que tout ce qu'on a à faire c'est de préciser le nombre des ch'ti matin qu'on désire avoir il n'est pas utilisé il n'est pas utile de préciser le belge estime à tort pourquoi parce que le rang d'homme fort est utilisé par défaut en a un bel estime à tort de type arbres de décision donc cette
fois ci si on entraîne un modèle de rang des forages on voit ici qu'on obtient une performance de 4 à 8% en général un random forest va avoir de meilleurs résultats qu'un bag in classify heures avec un cabinet morse classify heures mais il faut un petit peu leurs règles et il faut un petit peu l'optimiser par exemple on peut jouer avec l'argument nax d'eps qui va nous indiquer quelle est la taille maximum des arbres qu'on veut avoir dans notre forêt donc plus cette taille est grande plus nos arbres seront des experts dans leur domaine c'est
à dire meilleures seront leurs performances mais attention ces arbres seront alors plus propice à faire de lover fitting donc il faudra agrandir la taille de notre forêt donc agrandir la taille de le nombre destinataire bien sûr vous vous en doutez plus on augmente la taille des arbres et plus on augmente la taille de la foule vers un plus notre modèle va être lent donc c'est un des désavantages de ce genre de technique il faut garder ça à l'esprit à présent pour le boosting je vous ai dit qu'il existe deux grands estimateur à dabou et grades
your sting et encore une fois ils sont valables en tant que classe i fire et en tant que regret sort mais ici on effectue une tâche de classification et le principe est toujours le même quand vous utilisez ces algorithmes tout ce que vous avez à faire c'est de préciser le nombre des ch'ti matin que vous voulez avoir donc on peut en prendre sans encore une fois est entraînée tout ça avec les méthodes habituelles et ça nous donne une performance de 90% alors bien sûr on peut rajouter d'autres hyper paramètres comme par exemple choisir un estimateur
de base pour ada boost de base ce sont des arbres de décision encore une fois on peut aussi préciser un learning wade je vous laisse découvrir tout ça est la meilleure chose à faire dans tous les cas si vous voulez trouver les meilleures configurations c'est tout simplement d'utiliser une grid search cv voilà pour finir je vais vous montrer comment faire du stacking avec la classe stacking classify heures donc le principe comme on l'a vu c'est d'entraîner un estimateur par dessus les prédictions de nos différents modèles donc ce qu'on peut faire tout simplement c'est prendre en
le voting classified qu'on avait au tout début mais remplacé ce vote in class i nférieure parent stacking classify heures dans lequel on écrit d'abord sous forme de liste les différents modèles qui vont constituer notre foule et ensuite à la place d'avoir un voting ce qu'on va avoir c'est un final estiment à tort qui va effectuer ses prédictions par dessus notre foule donc là il faut qu'on choisisse un estimateur et on peut par exemple prendre un cahier neighbors classify or voilà juste pour aller vite dans cette vidéo que vous ayez bien compris l'idée et encore une
fois on copie colle modèle fit modèle score et on obtient encore une fois une performance de 4 1% donc on a pas mal de fois obtenu une performance de 90% de 89 87 mais ce qu'on a pu voir c'est qu'à chaque fois cette performance était supérieure à celle de modèles individuelles qu'on pourrait entraîner en machine learning donc voilà dans cette vidéo vous avez découvert une nouvelle technique très puissante ce sont les techniques d'ensemble maintenant si vous voulez savoir quelles techniques utilisées dans quelles circonstances ce que je vous conseille de retenir c'est que le bât ging
on va essayer de l'utiliser lorsqu'on se rend compte que nos modèles singulier ont tendance à faire de lover fitting donc le fait de créer plusieurs experts et de faire la moyenne ou bien le vote de leurs prédictions avec du bund strapping r ça va réduire cette horreur fitting et si l inverse vous travaillez sur un problème dans lequel est bien vos modèles individuelles ont du mal à atteindre une bonne performance simplement sur le trail 7 parce que le date à s'être la tâche est très complexe alors essayez d'utiliser du broustic c'est très efficace quant au
stade king c'est une technique qui peut être très forte si vous avez passé énormément de temps à entraîner chaque modèle individuellement par exemple que vous avez pris un sg des classes i nférieure et vous lui avait demandé de travailler pendant des visions d'itérations ça peut être une possibilité est de la même manière vous avez entraîné un arbre de décision ou bien peut-être même une random forest et ils vous l'avait entraîné avec énormément de de d'arbres dans la forêt donc la forêt est très puissante et vous voulez assembler les résultats de la forêt avec les résultats
du sd avec les résultats pourraient être d'un réseau de neurones et demandé un modèle encore au dessus de votre foule d'effectuer un travail de prédiction donc honnêtement cette technique peut être très efficace mais c'est la plus lente des trois techniques qu'on a vu dans cette vidéo [Musique] bon on a atteint ensemble la 25e vidéo de cette série python spécial machine learning j'aimerais que vous preniez le temps de vous applaudir pour avoir eu la force la volonté et la motivation d'arriver jusqu'ici franchement bravo vous avez appris beaucoup de choses des choses que vous ignoriez peut-être il
ya encore seulement quelques jours donc maintenant il est temps de passer à la pratique en mettant en oeuvre les nouvelles compétences que vous avez concernant doubaï panda et s'acquitte l'homme pour ça je vous propose qu'on fasse tous ensemble un projet pour les cinq dernières vidéos de cette série et j'ai envie de vous laisser choisir le sujet sur lequel on va travailler donc ce que je vous propose de faire c'est de voter dans les commentaires pour le projet qui vous tient à coeur parce que je pense que vous êtes suffisamment nombreux compétents et diversifié pour qu'ensemble
on réussisse à trouver un super projet alors pour qu'on choisisse un projet sur lequel tout le monde puisse travailler même les personnes qui voient cette vidéo à l'avenir il faut que vous me proposiez un dataset qui soit facile d'accès donc un adversaire qui viennent soit de kyle soit du module data cesse de sakic landes donc ça peut être par exemple dataset du titanic le dataset des prédictions de du prix de l'immobilier ça peut être le dataset des fleurs d'iris celui du cancer du sang ou n'importe quel autre dataset qu'ils soient connus est assez facile d'accès
aux quais en revanche petite précision on va éviter de prendre date à 7 pour faire de la vision par ordinateur ou des tchats bord tout du traitement du langage naturel pour cette vidéo pour ce projet tout simplement parce que ça nécessite d'apprendre des outils comme tencer flow oupeye torch et on n'a pas vu dans cette série mais mais mais on le verra dès que cette série sera terminée donc vous en faites pas c'est pour très bientôt voilà donc j'espère que vous allez venir avec plein d'idées merci de laisser tout ça dans les commentaires de cette
vidéo comme d'habitude je lirai tous les commentaires et je sélectionnerais le data 7 qui aura été le plus demandé par vous la communauté et bien sûr vous saurez de quelle date à 7 il s'agit au début de la vidéo 26 vidéo dans laquelle je vous présenterai la démarche de travail pour bien conduire un projet de data cinq ans donc si vous ne voulez pas louper cette vidéo je vous invite à vous abonner à cette chaîne youtube et si vous voulez rejoindre la communauté pour travailler tous ensemble sur ce projet pendant les prochains jours ou prochaines
semaines alors je vous invite à rejoindre notre serveur discorde le lien est dans la description et voilà c'est la fin de cette vidéo si elle vous a plu merci de me soutenir sur tipi merci partager la vidéo avec un ami quant à moi je vous dis à très vite et surtout prenez son goût [Musique]