bonjour et bienvenue dans cette 29ème vidéo de la série python spécial machine learning dans les deux dernières vidéos nous avons analysé les données d'un data 7 sur le coronavirus pour identifier les variables les plus importantes puis nous avons prétraités ce dataset dans le but de développer un modèle de machine learning est bien avec tout ça ça y est nous allons enfin développer un vrai modèle de machine learning en essayant de l'optimiser pour avoir les meilleures performances possibles pour ça dans cette vidéo on va procéder de la façon suivante pour commencer on va entraîner tout plein
de modèles différents et on va retenir celui qui aura la meilleure performance ensuite on va tenter d'améliorer la performance de ce modèle en optimisant ses hyper paramètres grâce à une série de plusieurs algorithmes grid search cv et enfin je vous montrerai comment utiliser les courbes de precision et de recall afin de trouver le meilleur fraîcheur c'est à dire le meilleur seuil pour notre modèle de machine learning allez vous êtes prêts c'est parti [Musique] alors dans la dernière vidéo on avait déjà entraîné un modèle de machine learning dans le but de faire du prix processing c'était
donc un modèle de base qui nous avait permis de comprendre comment faire de la sélection de variables comment faire l'imputation de nos données avec un drop n'est ou avec un fils aîné tout ce genre de choses dans le but d'améliorer au maximum la performance de ce modèle de base à présent ce qu'on va faire c'est tenter d'améliorer la performance du modèle en lui-même sur la base des réglages qu'on a effectué la dernière fois pour ça une approche possible c'est de commencer par créer une liste de tout plein de modèle de machine learning différents par exemple
un rang d'homme fort est un supporter vecteur machine inca inertie neighbors et de soumettre tous ses modèles à la même procédure d'évaluation qu'on a créé dans la dernière vidéo comme ça on pourra identifier sur la base d'une attaque est que l'on a créé quel est le meilleur modèle de machine learning donc c'est parti on va commencer par créer une liste of modèle qui va inclure différents modèles de machine learning alors vous pouvez en mettre autant que vous voulez moi je vais choisir de mettre un algorithme de bag line qu'on a déjà ici random forrest classify
heures je vais également m un algorithme de boosting donc on avait vu l'algorithme ada boost classify art et je vais par exemple m un algorithme de supporter vecteur machine pourquoi un algorithme de supporter vecteur machine est bien parce que ses algorithmes sont particulièrement efficaces sur des dat ass est de taille intermédiaires voire de petite taille donc tous les data 7 qui vont faire mille ou dit donner si vous ne savez pas pourquoi ne vous en faites pas parce que je vais bientôt vous expliquer tout ça sur cette chaîne à travers d'autres plats lice d'autres vidéos
qui seront très détaillées sur chaque algorithme a donc un algorithme supporter vecteur machine et pourquoi pas un algorithme de base l'algorithme kenny ross neil back from s'acquitte l'orne point neighbors importe quel neighbors classify or voilà ça nous donne 4 algorithmes en homme fort est à dabou sts svc et divorces classify heures mais au lieu de simplement rentrer ses algorithmes dans notre liste eh bien il va falloir que je les rentre à travers une pipe lines qui va reprendre tout ce qu'on a pu faire dans la dernière vidéo donc je vais commencer par renault mais cette
priceline prix processor et je vais me retirer le random forest classify heures donc on ajuste les opérations de transformation politique futur et sélect club est dans ce prix processeur à présent cette pipe line prix processor je vais la rajouter en amont de tous les modèles qu'on peut avoir random forest ada boost et c'est donc je vais créer une nouvelle 'pipeline' par exemple une 'pipeline' random forest qui va contenir le prix processor suivi de mon algorithmes de random forest avec par exemple un random state égal à zéro voilà ensuite je vais faire de même pour ada
boost donc je vais créer un modèle à dabou ce qui est une pipe lines qui comprend d'abord la pipe line de prix processing suivi de mon un dabiste classify heures avec de la même manière un random state égal à zéro puis je vais créer un modèle par exemple svm qui est donc une 'pipeline' dans laquelle on va avoir le prix processor suivi du sv elle mais attention entrepris processor et sv m il va falloir rajouter une opération de normalisation pourquoi et bien parce que jusqu'à présent dans notre dans notre travail on n'avait pas fait de
normalisation parce que les arbres de décision les random forrest classify heures et de la manière et de la même manière à dabou ce classify heures sont tous des modèles basés sur les arbres de décision et les arbres de décision n'ont pas besoin d'avoir des jeux de données normalisées mais c'est pas le cas du supporter vecteur machine ou bien du cabinet morse classe i nférieure ou de la grande majorité des modèles de machines horny qu'on utilise donc dans notre modèle svm on va rajouter entre le prix processing et le support de vector classe i nférieure on
va rajouter quoi un stand art keller alors il est pas encore chargé à la suite de prix processing on veut rajouter standaard skylar comme ceux ci et on peut donc rajouter voilà le stand art keller tout va bien avec un ace b c est dans l baissé on a aussi un random state égal à zéro toujours et vous avez compris pour finir on va rajouter un cas nn avec make 'pipeline' prix processor standard skyler puisque voilà supporter vecteur machines sont eux aussi sensible aux normes de nos données avec un kane est mort ce cas-ci fire
est ce qu'on va faire pour le moment vous l'aurez remarqué c'est qu'on va laisser nos modèles sur leurs paramètres de base ou leur hyper paramètres de base donc voilà je n'ai rien préciser pour le supporter vecteur machine où le nombre de voisins dans tout ça ça va venir après maintenant qu'on a défini nos différents modèles on va rajouter notre liste de modèles en dessous qui va contenir le random forest lada boost classify heures le supporte vector machine et le kairos neighbor comme ceci est maintenant on va évaluer tous ses modèles dans une boucle fort models
in list of modèle double point avec notre procédure d'évaluation donc évaluation de notre modèle on exécute le code et il est possible qu'on ait beaucoup de messages d'avertissement nous indiquant attention feature 0 are concerned ça c'est parce qu'on avait utilisé dans notre pipeline le polynôme jan fischer qui rajoute une colonne de billets avec une colonne rempli de 1 donc forcément les constantes et ça ça ne plaît pas au sélect qui baissent donc si on veut pour plus de lisibilité retirez tous ces messages qui prennent beaucoup de place ce qu'on peut faire c'est dans notre prix
processeur rajouter include bayas égale falls donc exécute tout ça maintenant on a plus de soucis de deux variables constante tous les résultats nous sont retournés comme ça donc à présent le petit souci qu'on a c'est qu'on se retrouve avec tous nos tableaux superposés les uns au-dessus des autres sans forcément savoir à quoi correspond quoi donc une solution très rapides pour résoudre ce problème c'est tout simplement de convertir notre liste en dictionnaire dans lequel on va d'abord dire que random forest est associé à random fort est tout simplement virgule nouvelle association ada boost est associé à
ada boost voilà tout ce qu'on fait c'est qu'on donne des noms à nos différents modèles et ce dictionnaire maintenant qu'est-ce qu'on en fait et bien on se rappelle de tout ce qu'on a vu sur les dictionnaires si vous avez un petit trou vous en faites pas vous revenez aux vieilles vidéos ou bien c'est un petit peu pour ça qu'il faut avoir des fiches résumé ou un peu le livre que je suis en train d'écrire en ce moment qui résume tout ça dans laquelle on va voir modèle in list of modèle ge points à tmz ce
qui va nous retourner et la clé est la valeur donc on va faire fort qui virgule value in list of modèle ce point à terme ce qu'on pourrait nommer sa faune m virgule modèle est ce qu'on va faire c'est qu'on va imprimer le name et évoluer le modèle est cette fois ci ça y est on se retrouve avec random forest adam booth svm et k'naan et là on peut commencer notre comparaison donc bien sûr on pourrait analyser tout ça pendant très longtemps mais pour aller vite on va se concentrer sur le principal qui est le
ricol sur notre classe 1 donc les gens qui sont testées positives ou si on va être encore plus générale on va s'intéresser aux eps corps de la classe 1 et on va tenter de prendre le meilleur at score pour la classe 1 parmi tous nos modèles qu'on a un grand dam forest avec 1 40% de f1 de score 1 à dabou 52 donc à dabou stay meilleur support de vecteurs machine est à 48 donc c'est c'est bien meilleur que random forest mais c'est un peu moins bon que ada boost et le canada est à 52
lui aussi maintenant en analysant un petit peu nos courbes d'apprentissage bon l'arbre de décision enfin le random forest on l'avait déjà analysé la dernière fois lada bousseton on dirait qu'ils montrent plus haut niveau du validation score que le rang d'homme fort est ensuite le support de vector machine hoxha ça peut être très intéressant parce que le supporter vecteur machine est en train de nous indiquer qu'il n'est plus en odeur fitting là son score sur le trend a chuté mais il se rapproche beaucoup du validation score on peut pas parler de leur footing dans cette situation
donc ça c'est intéressant le support de vecteurs machine peut être très bon et pour lequel ni hausse ni bord lui aussi semble atteindre de bons scores letren score chute mais c'est pas grave ça c'est pas grave ce qui est important c'est d'avoir un écart réduit entre le 13 et le validation parce que ça nous montrent que le modèle a bien appris mais qu'il est capable de généraliser il n'a pas au vert fit son centre heinz est donc le quinquennat il pourrait être un bon choix mais je vais le laisser de côté parce que c'est vraiment
pas ce qui est plus adapté le nir sneijder est un modèle qui est basée sur les instances donc les données qu'on lui fournit et je préfère largement nous concentrer sur un support de vector machine ou un adam boost qui me semble bien plus prometteur donc ce qu'on va faire c'est qu'on va importer grid search cv depuis modèle sélection et c'est parti on va commencer à optimiser un modèle par exemple moi dans la vidéo je vais essayer d'optimiser le modèle svm mais vous de votre côté vous pouvez tenter d'optimiser par exemple voilà ada boost à dabou
ça peut être pas mal essayé de votre côté duty d'optimiser abda boost et dites moi dans les commentaires si vous obtenez de meilleurs résultats que moi c'est tout à fait possible donc on se rappelle quand on utilise grid search cv il faut qu'on définisse un dictionnaire d'hyper paramètres alors moi pour savoir quel super paramètres utilisés j'aime bien imprimer tout mam 'pipeline' entier pour sage écrit svm et voilà je vois les différentes étapes donc d'abord on à l'étape de prix processing qui s'appelle tout simplement 'pipeline' dans laquelle on napoli nommé fishers select ghaïb est alors tout
ça pour le moment on ne va pas y toucher on voit que kara est égal à 10 et polynomiale fischer est égal à 2 c les hyper permettre qu'on avait fixé dans la dernière vidéo ensuite on a un standard skyler ça c'est pas la peine d'y toucher et après on a notre supporte vector classified c'est lui qui nous intéresse alors les hyper paramètre important en support directeur machine c'est le coefficient de pénalité c'est et éventuellement aussi le gars m'a donc c'est parti on va créer un dictionnaire hyper params dans lequel on va créer deux clés
une clé gama est une clé c est dans la khl et gamma on va dire qu'on va tester des valeurs disons 1e - 3 et 1 e -4 si vous ne savez pas trop à quoi ça correspond vous en faites pas je ferai bientôt des vidéos sur le support de vecteurs machine qui nous indiquent tout ça et pour le coefficient de paix l'itc on va prendre un coefficient disons un 10 cents et me voilà des valeurs assez simple des différents paliers sur une échelle logarithmique safra la faire maintenant qu'on a ça bien sûr il ne
faut pas oublier de faire une chose c'est que ce dictionnaire hyper paramètres on va le faire passer dans notre grille de search cv grid égale grid search cv dans laquelle on va faire passer un modèle svm qui est une timeline donc dans cette pipe line on a tout plein d'autres hyper paramètres et rappelez vous d'une chose il faut donc écrire à quelle étape appartient c'est hyper paramètres donc on va dire que c'est hyper parapet paramètres appartiennent à l'étape svc qui est ici et donc on parle bien des tapes parce que ce sont les différences steps
qui sont inclus dans cette liste qui commence ici et qui se termine là donc on écrit svc underscore underscore gamma pour prendre l'étape svc suivi de gama on va faire la même chose pour le coefficient c'est donc svc thierry terret c'est donc là dedans on va faire passer svm suivi de notre dictionnaire hyper par anne suivi d'un scoring alors on pourrait prendre le score f1 ou le recall nous on va par exemple et c'est leur école puisque c'était l'objectif qu'on s'était fixé dans la vidéo 26 de minimiser leur école c'est à dire le nombre de
gens qui sont positifs au virus mais qu'on ne détecte pas étant positif et du coup on laisse courir dans la nature les gens qui sont contaminés ça c'est quelque chose de très grave donc on s'est dit que c'est leur école on va tenter d'optimiser avec un cross validation par exemple égal à 4 voilà alors on me demande parfois comment tu choisi le nom de split ce qu'il est égal à 3 4 5 alors il ya certaines règles je vous les expliquerait à l'avenir dans des vidéos un petit peu plus avancée mais sachez que c'est parce
qu'être plus important donc on peut prendre trois quatre cinq ce sont des valeurs assez standard qu'on retrouve très souvent et qui fonctionne très bien donc maintenant qu'on a notre grille eh bien il va falloir l'entraîné donc on fait grid point fit x trail y tryin et avec notre grille maintenant par exemple on va afficher les meilleurs hyper par m donc on va faire grid points best params qui est un des attributs de la classe grid search cv si vous ne vous en rappelez plus et bien vous allez consulter la doc ci quittent leur nid ou
bien vous regarder à nouveau la vidéo 21 sur 30 que j'ai fait peut-être que je vais aussi l'inclure dans le livre que je suis sur lequel je suis en train de travailler en ce moment et qui résume toute cette série au cas où vous n'êtes pas au courant là je suis en train de travailler sur un gros projet ça ne prend pas mal de temps et une fois qu'on a affiché nos meilleurs hyper paramètres pourquoi ne pas calculer un vecteur prédictions avec notre grille de points predict x tests et comparer ce résultat avec les valeurs
attendues dans classification report qu'on avait utilisé déjà dans la dernière vidéo donc on fait y teste virgule y fred et faites bien attention parce que l'ordre a une importance il faut toujours passer y teste en premier sinon bah tous les calculs sont inversés dans les matrices de confusion et c est donc si on exécute ce code alors on voit qu'on obtient à un coefficient c'est égale à 1000 coefficient nos gammes à égal à 10 points 3 et au niveau des scores donc on obtient 1 0 44 et 0,54 et que voit-on eh bien on voit
qu'on a une amélioration par rapport à tout à l'heure où on avait 1 0 38 et en 0,48 pour notre supporter vecteur machine donc c'est très très cool on a réussi à améliorer un petit peu la performance de notre modèle en touchant à ses hyper paramètres alors à présent on pourrait passer ce modèle dans notre fonction évaluation en acquérant évaluation de grid points best estiment à tort et on voit que la courbe du trench corps diminue en effet mais la courbe sur le validation score augmente et on commence à atteindre un palier où les deux
se rejoignent donc c'est très bien de constater ça parce que ça nous indique que le modèle n'est certainement pas en over fitting pourquoi parce que son score sur le t7 sur le trent et le même que celui sur le validation 7 à peu de choses près donc le modèle est capable de généraliser il va pas être excellent sur le court qui la prends mes mauvais dans la vraie vie tenant il a à peu près le même score et ça c'est un bon signe en maintenant la question c'est comment réussir à pousser le modèle encore plus
loin eh bien on pourrait tenter de faire une grille de search cv gigantesque surtout les hypers paramètres de notre pipeline en testant à chaque fois des centaines de configuration sauf que si vous faites ça bah vous pouvez attendre longtemps je vous conseille de faire deux trois cafés non mais blague à part c'est pas possible un ou deux cafés va pas suffire votre ordinateur va tourner toute la journée donc pour tenter de faire des recherches lorsque vous avez un domaine excessivement grand je vous conseille d'utiliser randomized search cv à la place de grid search tv ce
que va faire cet optimisé est optimizer optimisateur je sais pas trop comment 10 en france elle est bien c'est de chercher de façon aléatoire différentes combinaisons dans tout le domaine des hypers paramètres dans tout le domaine que vous allez définir ici donc si vous avez par exemple un domaine dans lequel il y à 1000 configurations différentes vous allez dire bah testeuses en dise au hasard et ça ça peut être très efficace si vous créez une boucle fort dans laquelle le randomised search cv cherche plusieurs fois d'affilée dans un domaine vous réduisez au fur et à
mesure mais c'est une technique assez avancé je vous en parlerai à l'avenir dans d'autres vidéos en attendant si on veut faire quelque chose d'assez basique pour cette vidéo on va commencer par rajouter 2 3 hyper paramètres dans notre dictionnaire donc on va rajouter quelque chose pour pauline omer fishers dans lequel on va essayer de changer maintenant voilà la lure de notre prix processing donc on va faire d'abord il va falloir choisir l'étape 'pipeline' underscore underscore polynomiale finishers lindros corps à leurs scores hyper paramètres degrés donc on va tester différents degrés par exemple le degré 2
3 et 4 c'est déjà pas mal et un autre ibère paramètres qu'on pourrait tester ça serait par exemple le célèbre cube est donc de la même manière on va faire 'pipeline' underscore underscore select kaib est qu'on va pas s'embêter on va simplement le copier coller comme ceux-ci underscore underscore cas est là pour la valeur de cas bah on peut aller chercher très loin on peut faire par exemple un rognage allant de 4 donc quatre variables sélectionné au minimum jusqu'à 100 pourquoi 4 et bien parce que c'est une des unes des valeurs qu'on avait testé dans
la dernière vidéo on a vu que le nombre minimum de variables viable on va dire cette es4 on va tester avec 4 on va aller jusqu'à 100 donc ça ça nous donne notre dictionnaire d'hyper paramètres dans lequel on a donc des centaines même des milliers de deux configurations possibles donc si on fait tout ça avec un grid search cv on est mort ça sert à rien vous pouvez dire au revoir votre machine et la retrouver dans une semaine donc on va à la place utilisez un rand miles search cv dans lequel on fait passer notre
modèle sbm ont fait passer le dictionnaire des hyper paramètres mais ce qu'on va faire passer également c'est un nombre d'itérations c'est à dire combien de fois est-ce que cet algorithme va devoir effectuer une recherche aléatoire avec toutes nos combinaisons donc combien de combinaisons on teste en réalité un au hasard et ce nom aura peut-être le fixe est allé à dison 40 au hasard donc c'est pareil on entraîne notre grille on l'impriment tout ça et donc on voit qu'on obtient les mêmes hyper paramètres que tout à l'heure pour notre svm ensuite c'est la cub est on
a cinquante variable pour notre expansion polynomiale on a trois degrés et ça nous donne ça nous donne encore une fois des bons scores maintenant bien sûr on a seulement tester 40 configuration dans tout ce domaine donc si vous voulez vous pourriez effectuer cette boucle plusieurs fois d'affilée ou écrire un algorithme de recherche un petit peu plus puissant dans lequel vous aller progressivement si vous voulez soumet vers les meilleures configurations vers les meilleurs hyper par matt c'est à dire que la voilà on pourrait dire ok 50 3 ah ben on va chercher au tour maintenant des
40 60 voilà on réduit peu à peu le domaine et on va on va garder aller le 2 3 4 on va ré effectuer une recherche c'est quelque chose qu'on peut faire assez facilement et donc cette fois-ci bible on voit qu'on obtient vraiment de meilleurs résultats on obtient agricole de 50 donc là c'est bien là c'est intéressant et un score et fin de 52 là on s'approche du graal sivola peu à peu on améliore la performance de notre modèle et m'annonce qu'on à faire ce qui va très intéressant de faire c'est de finaliser la création
de notre modèle en observant les courbes précision recall et en définissant un seuil de décision'' d'indret un seuil de prédiction pour notre modèle donc ça va être la dernière partie de cette vidéo dans laquelle on va utiliser la fonction precision recall curve du module metrix qui est une fonction qui nous permet de visualiser la future précision combien la future sensibilité de votre modèle en fonction d'un seuil de précision que vous allez définir en effet la plupart des modèles qu'on développe en machine learning comme le modèle de support de vecteurs machine qu'on est en ce moment
en train de développer on ce qui s'appelle une des six jeunes function par exemple dans le cas d'une régression logistique cette fonction de décisions nous permet de calculer la probabilité p 2 x qui nous permet ensuite de faire une prédiction et ont fait cette prédiction en fonction d'un seuil d'un frêche solde par exemple si notre seuil est égal à 0,5 alors si p 2 x est supérieur à 0,5 la prédiction c'est que y est égal à 1 et sinon c'est que y est égal à zéro et ce seuil on est capable de le déplacer où
on désire une fois que notre modèle a effectué son apprentissage et bien l'impact qu'on va choisir pour ce seuil on peut le visualiser grâce à precision recall coeur je vous montre tout de suite ce qu'on va faire en utilisant precision recall curve s'est passé dans notre fonction y teste ainsi que grid point best estimateur point des six jeunes fonctionnent 2x tests et ceci va nous retourner plusieurs choses à savoir un tableau nu une paille pour une précision un tableau nîmes by point recall et un tableau nîmes paille de différents frachon est maintenant c'est trois choses
on va pouvoir les afficher sur un graphique macnotes libre en affichant en or en abscisse neuf fois chaude et en ordonnée la précision et leur école pour ça on écrit mate le clip points pelote de notre fraîcheur en abscisses et par exemple d'une précision en ordonnée mais la précision ça c'est un petit truc à savoir il faut la prendre jusqu'à l'élément jusqu'à l'avant dernier élément c'est un petit détail technique pas très important je vous le dis ici encore une fois ce sera écrit dans mes fiches résumé et je ferai des vidéos à venir qui explique
ça un petit peu plus en détails et bon bah on va appeler sa précision et on va faire exactement la même chose pour notre recall en appelant sa leur école ont créé une légende tout simple et on obtient le graphique suivant alors sur ce graphique qu'est ce qu'on peut voir et bien on peut voir que si on prend un seuil de décisions égal à moins 12 par exemple alors notre ricol se rapproche des 100% ça veut dire que tous les gens pour testé positif au courant d'un virus on aura su les identifier mais ça c'est
facile il suffit de dire que tout le monde a le coronavirus et alors on atteint 100 % de performances par contre la précision va en prendre un sale coup puisque il ya plein de gens qui ne sont pas affectés qui n'ont rien de qui n'ont aucun problème et on va également les envoyer à l'hôpital en soin intensif et ça on ne le veut pas premièrement parce que voilà ces personnes ne sont pas affectés mais aussi parce que ça va remplir les hôpitaux de gens qui sont parfaitement sans qu il y aura moins de place à
l'avenir pour les gens qui sont vraiment infectés donc il est important de trouver un bon trade off une bonne balance un bon compromis comme on dit en français entre la précision et le recall et on remarque en général que plus la précision augmente plus leur école va diminuer alors en général la précision termine à 100% elle aussi voilà je sais pas trop ce qui se passe un petit une petite erreur peut être dans deux dans la dans l'optimisation avec randomized son chevet c'est peut-être ça mais voilà l'idée c'est de tenter de trouver le seuil de
décision à l'intérieur de notre support de vecteurs machine qui va nous donner le meilleur recall avec la meilleure précision et en général c'est le score f1 qui nous permet de trouver ça et c'est là où va se situer le croisement des deux en général mais selon notre cahier des charges on peut se permettre de sacrifier un petit peu de précision pour avoir un meilleur recall ça c'est une possibilité et c'est ce qu'on avait essayé de dire ou de définir dans la vidéo 26 la vidéo qui met en place les objectifs donc par exemple vous pourrez
essayer un fjord égal à -1 ce qui semblerait nous donner une précision pas trop mauvaise bon évidemment c'est pas le meilleur mais avec un recall au-dessus des 0 6 presque pas loin des 0,7 ont pour ça on va créer une dernière fonction une fonction qui va englober notre modèle ça va être notre véritable fonction de prédiction qu'on va appeler def modèle final qui va prendre en paramètre notre modèle actuel ainsi qu'un flash mob qui va arabe par défaut à être égal à par exemple 0 et cette fonction elle va retourner le résultat entre modèles point
des six jeunes fonctionne sur les données x qu'on lui passe donc on va également rajouter quelque chose qui s'appelle x là dedans et on va dire que ça nous retourne choo si en effet cela est supérieur à fraîcheur et sinon ça va nous retourner falls si la del à la fonction est inférieure à ce seuil j'espère vraiment que c'est clair pour vous si c'est pas le cas vous en faites pas je vais vraiment faire des vidéos là dessus à l'avenir donc cette fonction on la compil et maintenant on peut l'utiliser en disant que par exemple
y pred est égal au résultat aux prédictions de modèle final de notre grille de points est estimé à tort ça ça va être notre modèle x ça va être xt est et fraîche chaude et bien qu'on a dit qu'il était égal à -1 par exemple on va essayer ça est à présent pour terminer notre évaluation et bien on va faire y prennent on va évoluer y pred par exemple avec et bien le score f1 qu'on avait chargé dans la dernière vidéo donc on va faire f one score qui est une des métriques disponible dans sexy
de l'orne point de naître x f one score de y teste et y pred et on voit qu'on a un score f1 de 0,6 donc c'est pas mal du tout il me semble même que c'est l'objectif qu'on s'était fixé dans la vidéo 26 maintenant on va voir ce que ça nous donne avec le ricol donc celui-là on n'avait pas chargé donc on va charger man en forme s'acquitte l'orne point metrics hymne porte recall score et on va voir ce que ça nous donne sur leurs écoles comme ceux ci on a 1 répondent à un recall
de 75% c'est vraiment pas mal franchement c'est vraiment pas mal croyez moi donc voilà on a vu vraiment beaucoup de choses dans toutes ses vidéos dans toute cette étude de cas est ce que vous pouvez retenir de cette vidéo c'est que lorsque vous passez à la partie de modélisation et bien commencé par tester différents modèles dans un dictionnaire ou dans une liste des modèles avec tous une une caractéristique différentes une nature différente voilà un algorithme de bag in un algorithme de boosting un algorithme basé sur les instances ou bien un algorithme de supporter vecteur machine
qui est en général est extrêmement efficace sur les petits dataset très complexe évalué tous ses modèles avec une procédure robuste en utilisant toujours la même méthode tout pour la même démarche toujours les mêmes échantillons comme ça vous avez une évaluation juste entre vos différents modèles ensuite retenez les modèles qui vous donne les meilleures performances par exemple supporter vecteur machine mais le ada boost pourrez également vous donner des bons résultats moi je vous conseille de le chercher de votre côté si vous voulez et ensuite essayer d'optimiser ce modèle avec great search cv puis un randomised search
cv ça va vous donner les meilleurs hyper paramètres et pour finir dans le cas d'une classification binaire donc est ce que le patient est malade ou non n'hésitez pas à afficher les courbes de précision et de recall pour définir vous même le seuil de décisions pour lequel vous allez dire qu'une personne est malade ou non parce que ça ça va vous permettre d'atteindre de meilleures performances que si vous dépendez uniquement de des résultats qui vont vous être donné par votre modèle de base donc pour ça au lieu de simplement faire votre modèle point predict et
bien utiliser votre modèle point des six jeunes fonction qui va vous donner la réponse du calcul interne du modèle pour chaque valeur de l'x test mais pas la prédiction juste la réponse au calcul est basé sur cette réponse voilà par exemple la réponse est de 0,4 bah vous vous dites moi mon fraîche aux barrières de décision elle est égale à -1 0,4 c'est supérieur à -1 donc à partir de là je fais ma prédiction et bien grâce à ça vous pouvez vraiment améliorer la performance de votre modèle voilà on a vu beaucoup de choses ensemble
vraiment beaucoup de choses en tout cette série bien sûr on pourrait continuer à tenter d'améliorer la performance de modèle une des choses que je n'ai pas fait dans cette vidéo c'est de faire du de lover sampling c'est-à-dire rajouter encore plus d'échantillons positifs dans notre dataset puisqu'on a clairement à bagdad à 7 qui n'est pas équilibré ya beaucoup plus de cas négatifs que deux cas positifs pour ça on peut utiliser une librairie qui s'appelle ce mot tu je vous montrerai à l'avenir dans d'autres vidéos un peu plus détaillé je n'ai pas fait ici notamment parce que
c'est pas une technique qui est forcément bonne c'est une technique qui est un peu miraculeuse mais elle est dangereuse et je vous conseille pas forcément de l'utiliser dans tous les projets et ça je l'étais terrait à l'avenir je parle de tout ça parce que sur cagole il y avait 2-3 notebook qui utilisaient ce mot tu es vous avez été un certain nombre à l'utiliser en conséquence et voilà je voulais vous mettre en garde à ce sujet je vais peut-être moi même faire une vidéo tipi qui utilisent ce mode dans les prochains temps on verra mais
quoi qu'il en soit vous en faites pas que vous soyez sur tipi ou non vous aurez eu un jour toutes les vidéos qui vous faut pour devenir des maîtres en machine learning vous pouvez me croire voilà c'est la fin de cette vidéo 29 sur 30 et c'est presque la fin de cette série python spécial machine learning j'espère que vous avez appris plein de choses mais croyez moi ça n'est que le début de notre aventure on va encore découvrir ensemble tout plein de choses surtout les algorithmes de machine learning bientôt d'oedipe leur ding d'oeuvre in for
smart landing bref on a beaucoup de choses qui nous attendent en attendant portez vous bien merci vous abonner de partager la vidéo de laisser un commentaire et moi je vous dis à très vite pour la prochaine vidéo [Musique]