CROSS-VALIDATION SKLEARN PYTHON (Techniques expliquées en Français)
ฝัง
- เผยแพร่เมื่อ 22 ส.ค. 2024
- Dans ce tutoriel français Python, je décris les techniques de Cross-Validation, très utiles en Machine Learning, et je vous montre comment les mettre en place dans Sklearn (Python).
Les principales techniques de Cross-Validations sont:
1) KFold
2) Leave One Out
3) ShuffleSplit
4) StratifiedKFold
5) GroupKFold
Pour les utiliser dans Python avec Sklearn, il faut les importer depuis le module sklearn.model_selection.
Par exemple:
from sklearn.model_selection import KFold
cv = KFold(n_splits=5)
cross_val_score(model, X, y, cv=cv)
1) KFold Cross-Validation :
Consiste à mélanger le Dataset, puis à le découper en K parties égales (K-Fold). Par exemple si le Dataset contient 100 échantillons et que K=5, alors nous aurons 5 paquets de 20 échantillons. Ensuite, la machine s'entraine sur 4 paquet, puis s'évalue sur le paquet restant, et alterne les différentes combinaisons de paquet possibles. Au Final, elle effectue donc un nombre K d'entrainement (5 entraînements dans cette situation).
Cette technique est LARGEMENT UTILISÉE, mais elle a un léger désavantage: si le dataset est hétérogène et comprend des classes déséquilibrées, alors il se peut que certain splits de Cross-Validation ne contiennent pas les classes minoritaires. Par exemple, si un dataset de 100 échantillons contient seulement 10 échantillons de la classe 0, et 90 échantillons de la classe 1, alors il est possible que sur 5 Folds, certains ne contiennent pas d'échantillon de la Classe 0.
2) Leave One Out Cross Validation.
Cette technique est un cas particulier du K-Fold. En fait, il s'agit du cas ou K = "nombre d'échantillons du Dataset". Par exemple, si un Dataset contient 100 échantillons, Alors K =100. La machine s’entraîne donc sur 99 échantillons et s'évalue sur le dernier. Elle procède ainsi à 100 entraînements (sur les 100 combinaisons possibles) ce qui peut prendre un temps considérable à la machine.
Cette technique est DÉCONSEILLÉE.
3) ShuffleSplit Cross-Validation :
Cette technique consiste à mélanger puis découper le Dataset en deux parties : Une partie de Train, et une partie de Test. Une fois l'entrainement puis l'évaluation complétée, On rassemble nos données, on les remélange, puis on redécoupe le DataSet dans les même proportions que précédemment. On répète ainsi l'action pour autant d'itérations de Cross-Validation que l'on désire. On peut ainsi retrouver plusieurs fois les mêmes données dans le jeu de validation a travers les Itérations.
Cette technique est une BONNE ALTERNATIVE au K-FOLD, mais elle présente le même désavantage: si les classes sont déséquilibrées, alors on risque de manquer d'informations dans le jeu de Validation !
4) STRATIFIED K-FOLD
Cette technique est un choix par défaut (mais consomme un peu plus de ressource que le K-FOLD). Elle consiste à mélanger le dataset, puis laisser la machine trier les données en "Strata" (c'est à dire en différentes classes) avant de former un nombre K de paquets (K-Fold) qui contiennent tous un peu de données de chaque Strata (de chaque Classe).
5) GROUP K-FOLD
Cette technique de Cross-Validation est TRÈS IMPORTANTE A CONNAITRE !
En Data Science, on fait souvent l’hypothèse que nos données sont indépendantes et tirées de la même distribution. Par exemple, les appartements d'un DataSet de l'immobiliers sont tous indépendants (les uns des autres) et identiquement distribués.
Mais ce n'est pas toujours le cas ! Par exemple, les données d'un Dataset médical peuvent dépendre les unes des autres : si des gens d'une même famille sont diagnostiqué d'un cancer, alors le facteur génétique crée une dépendance entre les différentes données. Il faut donc Découper le Dataset en Groupe d'influence, c'est pour ca qu'il existe GROUP K-FOLD.
GroupKfold(5).split(X, y, groups)
► MON SITE INTERNET EN COMPLÉMENT DE CETTE VIDÉO:
machinelearnia...
► REJOINS NOTRE COMMUNAUTÉ DISCORD
/ discord
► Recevez gratuitement mon Livre:
APPRENDRE LE MACHINE LEARNING EN UNE SEMAINE
CLIQUEZ ICI:
machinelearnia...
► Télécharger gratuitement mes codes sur github:
github.com/Mac...
► Abonnez-vous : / @machinelearnia
► Pour En Savoir plus : Visitez Machine Learnia : machinelearnia...
Bonjour les Data Scientists !
J'ai 2 petites annonces :
1) J'ai fait une erreur d'étourderie dans cette vidéo: Pour GroupKfold, ce n'est get_n_splits() qu'il faut utiliser, mais split(X, y, groups) ! et veillez a bien créer un nombre de splits
Merci pour l’éclaircissement,
Bah ouais, on l'attend
Salut Guillaume, merci encore pour tout ce travail que tu fais pour nous! Petite question concernant ton message, si on avait pris l'"exemple du titanic pour le split(X, y, groups), par quoi aurions-nous du remplacer X, y et groups s'il te plait? Mon cerveau se mélange les pinceaux et a envie de mettre pclass, age et sex à la fois dans X et dans groups et j'imagine que c'est pas comme ça :/
En te remerciant!
c'est très bien fait, je préfère ce format de vidéo
Merci !!!
Honnêtement avec tous les cours que j'ai pu suivre, tes cours sont justes vraiment incroyables. Je ne pensais pas un jour pouvoir comprendre toutes ces notions en si peu de temps !!! (Et en français en plus 😂) Vraiment merci pour tous tes efforts, ta chaîne mérite bien plus de reconnaissance !
Merci ! :)
Ce format est très limpide et totalement complémentaire des vidéos précédentes. Ca me permet de renforcer ma compréhension, et au passage de la valider, des éléments très techniques des vidéos précédentes.
Un immense merci pour cette approche du Machine Learning vivante et hyper complète !!!
Merci beaucoup Jérôme, content d'avoir eu un commentaire venant de toi au passage.
Ca me conforte dans l'idée que l'audience accepte aussi des vidéos "live" ou je peux prendre mon temps pour expliquer les choses, sans vous ennuyer, c'est bien ça ?
@@MachineLearnia exactement !!!
@@jeromebesson8363 parfait ! merci
personnellement je trouve que ce format est tout à fait correct et qu'il fonctionne très bien dans une logique d'apprentissage
Bon courage Guillaume et merci beaucoup pour ce que tu nous transmets
Merci beaucoup je suis content que le format te convienne :) A bientot pour de nouvelles vidéos !
Brillant !!! Simplicité, sobriété, clarté !
Merci !
Merci Cher Monsieur pour vos efforts
tout le plaisir est pour moi
Le format est magnifique, je valide
super ! merci beaucoup :)
bonjour, merci pour cette vidéo, cela permet de se focaliser sur un sujet, ou une fonction, très pratique pour se clarifier les idées, je pense que ce genre de vidéo est très utile.
Content de l'apprendre !
bonjour vraiment votre pédagogie est exceptionnel malgré que je suis des cours sur Udemy vos vidéos sont les meilleures
Merci beaucoup. Je suis honoré de recevoir un tel commentaire. Est-ce-que le cours Udemy est payant ?
@@MachineLearnia oui oui
Je like ce format de vidéo: Il est idéal pour creuser des notions essentielles du ML, aller plus en profondeur. Et puis, le fait de sortir du code/python et de faire comprendre ces notions avec un "mode d'expression" plus communs/quotidiens (par exemple le jeu de carte) permet vraiment de se construire une intuition! C'était surement ton intention, et ça fonctionne :)
Merci beaucoup. La question était plus en rapport avec le fait que la vidéo semble "moins travaillée" car je ne prépare pas de graphique (ou tres peu), il n'y a pas de montage, je m'accorde le droit de faire des "eeuuh" et des petits silences / hésitations. Est-ce-qu'une telle chose convient ou est-ce-que ca te déçois par rapport aux autres vidéos ?
@@MachineLearnia D’accord je pense comprend la zone de questionnement: En gros l’idée est de savoir si ce type de montage (qui a le gros avantage de pouvoir être produit plus rapidement) reste aussi clair et intelligible que les autres vidéos?
Je vais tenter de répondre à cette question. Dans l'enseignement du Machine Learning, je trouve cette vidéo moins efficace que les autres car il manque une chose importante: l’Infographie habituelle de tes vidéos.
Elle est d’une efficacité redoutable! En un tableau/schéma et un jeu de 3-4 couleurs, tu arrives à nous faires saisir l’essence de chaque fonction, et à rendre visible les techniques de manipulation qu’on utilise. Du coup on apprend vite!
C’est bien simple: Quand je code, et que j’utilise des fonctions que j’ai déjà vue dans tes vidéos, j’ai toujours en tête le schéma qui allait avec (c’est ce qui reste! :) ) et ça aide tellement à VOIR ce qu’on manipule et à comprendre comment on le manipule (chose appréciable quand on travaille sur des objets aussi abstrait que des données) . Je comprend bien que ces vidéos sont longues à produire mais elles sont efficaces dans l’apprentissage: Il suffit de voir tout ce que tu arrives à nous faire faire dans une vidéo de 20 minutes, c’est incroyable à quelle vitesse on avance! :D
Ainsi, je pense que ce nouveau type de format, dépourvu d’infographie, est moins intuitif pour apprendre de nouvelles notions et moins efficaces (je pense que le temps d’apprentissage, par fonction, sera plus long et peut-être moins persistant en mémoire). Par contre il peut trouver toute sa valeur pédagogique en abordant des notions déjà vu, plus en profondeur. C’est pour cela que je trouve ces deux formats difficilement comparable mais complémentaire.
C’est un format tout nouveau donc dur de se faire un avis sur une seule donnée ;) mais personnellement je suis près à attendre un certain temps de sortie entre chacune de tes vidéos . Ce temps peut être bénéfique, pour bien assimiler les notions de ML et entrecoupé de ce nouveau type de format pour fortifier nos acquis et nous faire patienter :)
Julien, Je tiens a te dire un Grand Merci pour ton explication ! Tu as pris le temps d'articuler une réponse très complète qui m'apprend beaucoup de choses sur mon audience, et je t'en suis très reconnaissant ! Je prends beaucoup de plaisir a faire des vidéos avec les infographies, et je continuerai a en faire. C'est la première fois qu'on me dit que mes schémas restent en tète avec leur couleurs etc. C'est Génial je suis super content de savoir que ça aide ! Pas de doute, je continuerai a produire des vidéos pour aider au mieux la communauté, et si ça prend parfois un peu de temps, je peux sortir une vidéo Bonus comme celle présentée ici ! :)
Merci et a bientôt ! :)
@@MachineLearnia C'est moi qui te dit un grand Merci pour le temps que tu nous consacre ;)
Bonjour Guillaume, j'abonde dans le sens de mes camarades !
Ce format est très plaisant et n'obère en rien vos qualités pédagogiques, bien au contraire.
Il est très agréable de faire des progrès jour après jour en étant accompagné par un professionnel et une communauté engagée sur Discord.
J'invite d'ailleurs les personnes qui lisent ce commentaire à vous y inscrire, des novices comme moi peuvent échanger avec des experts. Pour progresser, ça n'a pas de prix!!!
Merci beaucoup Clément. Je suis convaincu du format a présent, je vais poursuivre dans cette direction, en alternant grosse vidéo / vidéo plus "simple". Et merci beaucoup pour l’encouragement ! A bientôt :)
Vous êtes juste parfait en explication. J'ai fais 7 mois de formation de DataScientist et 1 an d'alternance. Je n'avais pas appris autant que j'apprendre grâce à vos vidéos.
Merci beaucoup ! Ca fait tres plaisir :)
c'est parfait,un grand mercii ,i'am realy addicted to your lessons.bravo
Merci beaucoup :)
Ce format est top et surtout pour ce genre de concept je pense. Merci pour toutes tes vidéos, elles sont toujours très bien expliquées et didactiques ce qui m'a aidé à clarifier pas mal de choses :)
C'est un plaisir de vous avoir aidé :)
Super un tour de magie
Ahah Merci Graven ! Ca me fait très plaisir de continuer d'avoir des commentaires de ta part ;)
Je suis impatient de voir ta prochaine vidéo !
A bientôt !
Je n'ai jamais vu une explication aussi claire et visuelle. Le top !
Merci beaucoup :)
Vous êtes une immense source d'inspiration in data science, bon courage !
C'est un grand honneur de lire ce message, merci ! :)
Très bonne vidéo. ça m'a vraiment beaucoup aidé.
J'adore le format! merci pour tes vidéos c'est une mine d'or et en fr !
Merci beaucoup :)
Je vous remercie pour votre effort.
Bonne continuation.
De rien :)
Très bonne vidéo!! Félicitation pour les 3000 🎉
Ooh ca me fait plaisir d'avoir a nouveau des commentaires de ta part !! :D
Merci beaucoup ! On ira très loin ensemble ! :)
courage a toi,
Merci pour toutes tes vidéos qui ne cessent de m'aider
Merci beaucoup ! Je suis super content de savoir que les vidéos te sont utiles ! Vraiment ! :D
Salut Guillaume. J'aime beaucoup ton explication ! Ta chaîne progresse à un rythme impressionnant, jespere que ça continuera sur cette lancée !!
Merci Ilyes ! J’espère que ton site Internet se porte bien également !
@@MachineLearnia oui j'avance doucement 😉
bravo bravo bravo ...continue comme ça
Merci beaucoup !
Merci vous êtes d'une grande aide !
C'est parfait alors ! Merci beaucoup !
Très pédagogique ce type de vidéos. J'adhère complètement à l'idée d'en construire plus. C'est clair, on peut se le refaire seul pour bien comprendre le truc. Bravo.
Merci beaucoup, ça me fait plaisir d'apprendre ça ! Vous m'avez convaincu !
@@MachineLearnia pour te donner une idée, une vidéo de 21 minutes comme celle-ci, c'est 50 bonnes minutes de boulot perso pour bien assimiler les notions.
Parfait, ça me conforte dans l'idée de continuer comme ça ! On se retrouve bientôt pour la prochaine vidéo ! :D
@@MachineLearnia à très vite !
bonjour vous faites un excellent job
Merci beaucoup, ça me fait plaisir de lire un tel commentaire !
J'ai beaucoup appris avec vous, merci pour tous ce que vous faites.
Tout le plaisir est pour moi :)
cette vidéo est tout aussi 👍 que les précédentes
Merci beaucoup pour avoir laisser ton avis ! C'est très utile pour moi !
thank you, I follow you from Egypt.
Excellente approche très pratique et très imagée : compréhension assurée. ;). Une petite pause par rapport aux autres vidéos plus techniques et avec beaucoup de codage.
Encore merci.
Merci beaucoup, je suis heureux que ce format de vidéo t'ait plu :)
Merci beaucoup !
Ce format est riche et de bonne qualité.
J’ai trop liker cette vidéo, très bonne pédagogie :)
Merci beaucoup, c'est tres sympa :)
Oui avoir quelques explications théoriques c'est important.
C'est super avec les cartes et les schémas, car on visualise bien les différences.
Merci et bravo !
Merci Smartful ! Ca fait plaisir d'avoir un commentaire de ta part ! tu fais partie du cercle ! Penses-tu que ce format "live" ou les explications sont plus lentes est bien ? On ne s'ennuie pas trop ?
@@MachineLearnia Cool merci !
Non on ne s'ennuie pas.
Un simple face caméra serait ennuyeux, mais vu qu'il y a la vu des cartes qui illustrent ton discours on suit la vidéo avec intérêt.
Après c'est aussi parce que je comprend l'enjeu : avoir une mesure la plus objective de la fiabilité du modèle.
Donc ça aide à la concentration.
Super ! J'avais besoin de réponses a ce sujet ! Merci !
Je trouve que c'est une bonne idée d'alterner les deux formes. Comme ça on aura plus de videos et de bonne qualité qui plus est. Car faut avouer que même avec ce genre de vidéo plus chill le message passe super bien. 🙏
Merci beaucoup, je suis vos conseils ;)
Vidéo super, vulgarisation au top 👌
Merci beaucoup !
cette vidéo est simplement incroyable!
Encore une fois : Merci. C'est toujours un plaisir
Merci a vous :)
comme d'habitude c’était génial
Merci beaucoup :)
Méthode ingénieuse pour expliquer chapeau !
Merci :D
Bon apprentissage Merci Guillaume
Merci, ca fait tres plaisir :)
Très agréable comme style de vidéo ! 👍
Super, merci beaucoup !
Nickel. super pédago j'adore!
Merci !
Format validé. La vidéo est toujours aussi explicative et on comprend vraiment très bien. Pour moi c'est tout bon. Continue comme ça :)
Merci beaucoup, c'est l'information qu'il me fallait ! On se retrouve bientôt pour plus de vidéos pour répondre a vos besoins ! :)
c juste incroyable merci pour vos efforts
Merci beaucoup cher Guillaume c'est super beau
Merci Aymen ! Avez-vous vu la dernière vidéo !? :D
@@MachineLearnia oui c'est hyper Intéressant merci beaucoup
Merci pour vos explications, claires concises et utiles
Merci beaucoup pour tout ce que vous faites.
De rien :)
Excellente vidéo bravo
Merci beaucoup :)
Merci pour cette vidéo, c'est un format intéressant ! :)
Merci Beaucoup
Hey Guilllaume! Le format il est très sympa moi j'aime beaucoup. De plus sa permet de revenir sur les notions un peu abordé rapidement dans les autres vidéos et de les approfondire également! Franchement c'est bien pensée d'avoir eu à le faire sur la validation croisée! Bon travail et merci pour la qualité sans précédent du contenue!
Merci Ulrich Karl ! Content d'avoir un commentaire de ta part ! :D
Ok je continuerai a produire des vidéos posées comme celle-la. Je pense alterner les vidéos grosses/bonus, pour faire des vidéos plus souvent pour la communauté
Machine Learnia Super ce serait très cool!
Bon format, facilite les explications.
Merci pour votre retour !
your explanation is just so artistic , and you make it seem very easy
best playlist tutorial, LOVE IT
Thank you so much 😀
MERCI BEAUCOUPS 😊
franchement, merci beaucoup. Excellent contenu pédagogique un vrai travail d'artiste data scientist :)
Merci beaucoup ! :)
très bonne éxplication
T'es un roi
Très belle vidéo un format très soft , j'ai surtout apprécié ta façon d'expliquer la théorie d'échantillonnge par stratification (la théorie des sondages)
Merci beaucoup ! Je suis très content d'apprendre que l'explication était claire, même si je n'ai pas mis de graphique et d'animation dans cette vidéo
Excellent l'analogie avec le jeu de carte !
Content que ca ait plu :)
J'ai passé 6ans dans l'université et le nombre des cours qui j'ai assisté est inférieur a 20 en 6 ans mdrr je suis sur que si vous étiez mon chargé de cours je n'allais jamais s'absenter de l'un de vos cours :)
on vous remercie aussi
Bonjour, merci beaucoup pour vos vidéos, très pédagogiques. Les vidéos live sont très bonnes aussi tant que le contenu et le fond sont bons. Pour quand est prévue votre prochaines vidéo ? Merci beaucoup, vous nous aidez énormément.
Merci beaucoup ! Navré pour l'attente j'étais occupé au travail ! ^^
La prochaine vidéo est sur le point de sortir ! :D
Bonjour Guillaume, intéressant, merci. De mon côté je préfère les vidéos de ta formation car elles sont plus denses en information et dynamiques.
- Du coup les vidéos "classiques" de ta série sont parfaites pour se rafraichir la mémoire si on a oublié comment marche pandas, matplotlib, etc par exemple. Donc ce sont des vidéos dont je m'attends a ce qu'elles soient plutôt concises et que je vais regarder plusieurs fois.
- Des vidéos plus soft en montage et moins dynamiques comme celles ci, me semble plus appropriées pour des example d'application, ou d'approfondissement d'un sujet déjà traité (comme cette vidéo). Je les regarde volontiers pour savoir que ça existe, et voir des examples, mais je ne les regarderai pas forcément plusieurs fois à l'instar de celles de ta formation.
Salut ! Cette réponse me convient parfaitement, merci beaucoup d'avoir partagé ton avis ! C'est utile de mieux comprendre les attentes de la communauté et ca me rapproche de vous (quand on travaille tout seul dans son coin sans interagir c'est un peu triste). Je vais continuer les vidéos "denses" comme tu les appelle (je prends beaucoup de plaisir a les produire, mais avec mon travail a coté, j'ai du mal a les sortir plus de une par semaine)
tu es un boss
Bonjour Guillaume, encore une fois merci pour ces explications, moi personnellement j'aime bien ce genre de vidéos explicatives, ça nous fais genre un petit repos pour notre cerveau et ça nous aide mieux à comprendre, surtout avec l'exemple de jeu de carte alors merci infiniment,
j'ai juste une petite question; vous avez dit tout à l'heure concernant le deep learning qu'un entrainement pouvait prendre des heures, waw je n'y reviens pas, donc si j'ai bien compris je dois attendre des heures pour un seul entrainement pour voir si notre modèle est bien, sinon je dois changer un peu ses hyper-paramètres et ré-attendre encore des heures pour revoir le résultat hhhhhhhhhhhh ?
Merci en tous les cas pour vos vidéos, on se lasse jamais de vous.
Bonne continuation.
Merci beaucoup.
Oui, quand on travail sur un gros projet de recherche, c'est ce qui se produit parfois : des heures d'attentes pour entraîner un modèle suffisamment puissant pour faire de la reconnaissance d'images etc.
Mais on utilise le cloud, et des systèmes distribués (qui répartissent les taches sur différents CPU), des GPU, des TPUs, et parfois on réduit volontairement la taille de notre dataset pour tester rapidement des idées (sans l’entraîner longtemps)
Très bonne explication comme d'habitude ^^
merci
Merci beaucoup. Je pense que la vidéo vous a plu ? Est-ce-que je peux continuer a faire des vidéos plus posées comme celle-ci ?
Merci pour la video
de rien :)
bon tuto
Merci beaucoup Daniel !
Vraiment très intéressant et très bien expliqué! Le ratio likes/dislikes de ta chaine en témoigne :p!
Merci beaucoup Baptiste ! si tu as des suggestions ou des idées sur le format et la durée de vidéos, dis le moi ici :)
hello , merci pour ce travail !
j'ai une question : durant toute la vidéo vous avez commencé par diviser les données :
- Etape 1 : En 2 parties train/test en utilisant "train_test_split"
- Etape 2 : Ensuite les données train divisé en 2 parties train/validation en essayant les différentes méthodes que vous nous avez bien expliquées .
Ma question : pourquoi on n'utiliserait pas les autres méthodes (KFold , ShuffleSplit ...) lors de la 1ère étape ? (Etant donnée que "train_test_split" ne garanti pas l'équiprobabilité des classes sur les données train/test )
Merci pour cette vidéo !
de rien :)
super bien expliqué , merci !
Merci ! ça fait plaisir :)
Merci
de rien
Merci pour la vidéo ! J'ai juste une petite question, si je comprends bien, à la base, dans le dataset il y a le même nombre de cartes noires que de cartes rouges. On est donc le cas de classes équilibrées n'est-ce pas ? Mais si on avait dans notre dataset plus de cartes noires que de cartes rouges (par exemple 70% de cartes noires et 30% de rouges), alors après mélange, on met 80% dans le train set et 20% dans le test set. On décide alors d'appliquer la Stratified Kfold CV, mais on n'aurait pas les mêmes proportions de classes dans chaque fold du train set non? Comment y remédier ?
Merci d'avance pour la réponse :)
Bonjour, tres bonne question !
Si nous avons des classes déséquilibrées, il faut vraiment s'assurer d'avoir une découpe train-test qui conserve bien les rapport, ce qui fonctionne en général plutot bien, mais il faut toujours le vérifier.
Dans ce cas, le StratifiedKFold aurant dans chaque Fold la meme proportion de chaque classe (donc pas de soucis a se faire). Mais il faut vraiment utiliser StratifiedKFold !!! (et aussi avoir les classes correctement représentées dans le train ET le test)
@@MachineLearnia D'accord merci pour la réponse, j'ai bien compris.
Et du coup le processus reste le même ? c'est à dire qu'on entraîne toujours le modèle sur les k-1 fold de notre train est qui contiennent une petite proportion de chaque classe, et on valide sur le fold restant ? (Et ainsi de suite de sorte que chaque fold ait servi à la validation au moins une fois)
Le test set qui quant à lui contient 20% du dataset de base n'est toujours pas utilisé à ce moment là ? On l'utilise uniquement pour sélectionner le modèle c'est ça ?
J'ai par ailleurs essayé d'illustrer la Statified KFold CV avec un exemple ludique, et dans mes folds, j'ai une proportion de mes deux classes très proche voire identique que celle du dataset initial. Je pense que c'est normal :)
Alors la réponse est Oui a tout ce que vous avez dit, sauf pour le test set : celui-ci n'est pas utilisé pour sélectionner un modele (confere la vidéo 21/30 qui explique cela) Le test est est juste utilisé pour tester la performance future du modele. Il ne faut s'en servir pour rien d'autre que voir la performance. Pour selectionner un modele plutot qu'un autre, on utilise justement un Validation Set (souvent sous la forme d'une Cross-validation)
Et bravo a vous d'avoir fait une petite expérience pour visualiser Stratified KFold, les résultats que vous obtenez sont pertinents ! :)
@@MachineLearnia Ok merci beaucoup j'ai l'impression d'avoir tout compris et c'est en grande partie grâce à vous ☺️
Salut ! J'aime beaucoup tes vidéos ! Quand tu utilises le stratified k.fold, alors tes 4 vecteurs représentes xtrain, ytrain x test et y test pour chaque colonne ? J'aimerais utiliser cette technique pour couper un data set ayant pour objectif de prédire y (0 ou 1) et j'ai très peu de 0. Donc le stratified me parait être la bonne solution.
Pierre
Oui, c'est tout a fait la démarche qu'il faut utiliser si tu as peux de 0 et beaucoup de 1. Bon courage ! :)
Merci pour le contenu ,
c 'est très riche merci beaucoup ,
je voudrais juste savoir et ce que vous allez nous préparer une formation en deep learning ,? et merci
Oui c'est prévu, le Deep Learning est ma grande passion et nous ne sommes qu'au debut de cette chaine youtube ! :)
Bonjour,
Une petite précision svp
Le validation set avec GroupFold (Quand on tri les cartes par couleurs) n'est composé que de 3 des couleurs ?
Merci pour vos vidéos
Ca dépend du nombre de splits que l'on effectue.
- Si on fait 3 splits (3 entrainements / validations) alors le Val_set contiendra 1 couleur et le train_set les 3 autres couleurs (et on alternera a chaque split)
- Si on fait 2 splits (2 entrainements / validations) alors le Val_set contiendra 2 couleurs et le train_set les 2 autres
Bonjour à tous.
J'ai 2 questions :
1 - J'ai loupé un truc ou bien la correction de l'exercice proposé à la fin de la vidéo précédente est absente ? Je n'ai pas encore regardé toutes les vidéos de la playlist. Je ne suis donc pas définitif sur le sujet. Mais bon, je ne suis pas sûr de ce que j'ai fait et la correction serait bienvenue 🥴
2 - Il semble qu'il n'y ait plus de nouvelles vidéos depuis pas mal de temps. Vous confirmez ?
En tout cas un gros gros merci pour tout le boulot abattu. C'est bluffant.
Cordialement
Bonne vidéo comme d’habitude, mais dans la vidéo précédente tu avais dis que Gridsearch fait le travail de cross validation mais en plus de ca il trouve aussi les meilleurs hyper-parms, enfin d'aprés ce que j'ai compris en tout cas, si oui bah pourquoi ne pas utiliser Gridsearch tout le temps ?
Bonjour et merci !
GridSearch ne fait pas le travail de Cross Validation.
En fait, GridSearch utilise la cross validation pour trouver les parametres idéaux pour notre modele de Machine Learning. C'est a dire que GridSearch entraine différents modeles avec différents parametres, et évalue ces modeles sur diverses partitions du Trainset (avec la technique de Cross Validation) pour etre sur de retenir le modele avec les meilleures performances.
Cette vidéo (avec les cartes) illustres les différentes stratégies de partitions du Trainset ( Kfold, Stratifeid, etc) et ces partitions peuvent chacune etre utilisée dans GridSearchCV.
Bonjour et merci pour la vidéo.
J'aurais une question, dans la description de la vidéo vous écrivez que dans le cas de K-Fold, la machine découpe en "K" parties le DataSet, donc l'ensemble des données. La machine s’entraîne sur les (k-1) parties et s'évalue sur le dernier. Dans la vidéo vous dites que le découpage et la validation se fait seulement sur le Training_set. Auquel cas, que faire si au tout début, quand on fait la coupe training (80%) et test(20%) on a déjà un biais ou bien une "mauvaise" découpe?
La découpe Train-test est telle qu'elle est, parfois on ne peut pas avoir de chance, mais il faut éviter de tricher. Éventuellement, ce qu'on peut faire a simple titre d'information, c'est de faire une sorte de validation croisée pour juste voir a quoi ressemble la perf "globale" du modele, mais je ne le conseille pas.
@@MachineLearnia
Merci pour le retour rapide.
Dans le cas de K-Fold. Exemple, j'ai un Data que je coupe de manière aléatoire en 5 (K=5) chaque partie c'est bien 20%. Je pensais que la machine allait prendre le 1,2,3,4 comme training_set et le 5 comme test_set ensuite on permute 1,2,3,5 comme training_set et le 4 comme test etc etc...Ainsi la réponse du modèle ne dépend pas du tirage.
Mais en réalité, la découpe de k=5 se fait seulement sur les 80%, sur le training_set. C'est bien cela?
Si c'est bien ça, cette méthode depend fortement de la découpe initiale, Non?!
@@mustaphakamelbensmaia6579 Oui, c'est la situation n2. Il vaut mieux garder le test_set de coté, toujours !
J'aime bien cette forme aussi. Mais pour en revenir au fond, si j'ai bien tout compris, les techniques de validation croisée sont à privilégier lorsque l'échantillon de test est "peu volumineux". Comment quantifier cette limite ? Est-ce que www.tqmp.org/RegularArticles/vol08-3/p173/p173.pdf répond à la question ?
Merci beaucoup ! Oui on utilise la cross validation ou non en fonction du volume de donnée dont on dispose, mais également de la richesse des données présentes dans le dataset. Un test simple, mais efficace pour savoir si la cross-validation est utile ou non est d'utiliser cross_val_score() en début de projet, en entraînant un modèle simple. Si les scores sont tous très ressemblants (moins de 1% de différence) alors on peu se passer de la cross validation.
Il existe des test plus sophistiqués, comme des tests de Chi 2 (mais je n'ai pas pris le temps de lire dans les détails l'article que tu as joint ici, désolé)
Bonjour pouvez vous faire une vidéo sur les métriques de classification?
Etes-vous devin ? J'ai prévu de faire ca la semaine prochaine (ou la semaine suivante) ahah
Grand merci grâce à vous je suis de plus en plus alaise dans la compréhension des algorithmes du Ml et la programmation en Python.
Mon problème se situe au niveau l’interprétation des métriques la matrice de confusion auc f1 je suis vraiment confus.
Vivement la semaine prochaine.
Portez-vous bien.
Je vais parler de tout ca prochainement en effet !
Merci pour les vidéos. Je voulais savoir quelle validation croisée faut il utiliser quand on a un effectif assez réduit qui ne permet pas de découper l'échantillon en deux. Merci
par défaut celle de stratified CV.
Bonjour et merci pour cette vidéo. J'ai une question: dans la vidéo 21, on avait juste utilisé cv=5 pour la Cross Validation. Ici j'ai l'impression que Kfold fait strictement la même chose. Donc quel est l'intérêt de Kfold? Merci d'avance
KFold est un type de CV particulier. dans une CV classique, on utilise un StratifiedKFold, différent de KFold. Il faut bien choisir le type de CV que vous voulez pour votre projet.
bonjour j'aimerais savoir c'est quoi vous appelez classe si on se réfère à un dataset.merci d'avance
Bonjour, dans un probleme de classification, vous voulez prédire dans quelle classe tombe votre échantillon : Est-ce-que l'email est un spam (classe 1) ou pas spam (classe 2). Est-ce-que cet exemple vous permet de mieux comprendre ?
merci,gauillaume est ce que lorsque j'applique un fit sur mes train set sans cross validation est que apres j'utilise learning curve pour voir si il y a overfitting ou pas ,est ce que sera ue bonne ideé puisque mn fit est fait sans cross validation alord que ma courbe se fait par cross validation je trouve xa un peu non exact,
Ne vous inquiétez pas si vous n'utilisez pas la validation croisée sur le modele. Il n'y a pas d'impact sur l'interprétation de la learning curve, meme si celle-ci utilise la validation croisée.
Bonjour, aidez-moi, je ne sais pas comment mettre en place un chronogramme par rapport à la distance parcourue par ma moto en python
Dans le graphe de "Sample index" (6:03) et pour la couleur orange, vous voulez dire "Validation set" et non "Test set".
C'est vrai ou pas?
bonjour guillaume fais tu encore des videos ? je ne retrouve pas tes video recente je tai connu recement
Beaucoup des mots que vous utilisez existent en français : apprentissage statistique, validation croisée, ensemble d'apprentissage, etc. Pourquoi obscurcir le propos en utilisant du franglish ?
Hello, je comprend pas trop pour ton analogie avec les cartes pour GroupKFold, normalement c'est pas plûtot tu ne pas pas retrouver un groupe dans différents folds? Là tu dis que tu prend un trèfle, un coeur, un carreau pour former un fold. Cf la doc "The same group will not appear in two different folds (the number of distinct groups has to be at least equal to the number of folds)."
Oui je crois que c'est une erreur. J'aurais par exemple du prendre tous les trèfles dans un group, tous les coeurs dans un autre, etc.
Re bonjour
ou es ce que je m’abandonne au News letter pour les fiches
étincelle divine
Wow !
merci mon neuf je galère sur un TP de data avec un cours trop léger T_T
Bonjour je veux savoir s'il y a un moyen pour enregistrer l'entrainement car ca prend beaucoup de temps a chaque essai ? Et merci
Bonjour, oui vous pouvez utiliser un pickle :
import pickle
model.fit(X_train, Y_train)
pickle.dump(model, open('mon_model.sav', 'wb')) # cette ligne sauve votre modele sur votre machine
model = pickle.load(open(mon_model.sav, 'rb')) # cette ligne charge votre modele
result = model .score(X_test, Y_test)
Merci
À propos de mon premier commentaire il s'agissait de modélisé le flux ou la volatilité des abonnés sur la chaîne à la l'annonce de la sorti d'une nouvelle vidéo. sur ce on se dit à la prochaine vidéo et merci
Aaah oui je comprends mieux a présent ! C'est sans doute une modélisation qu'ils ont déjà faite a TH-cam !
Merci pour la vidéo, "je suis débutant "
comment relier les scores des entrainements a une nouvelle prédiction ..?
Je ne comprends pas vraiment la question désolé, pourriez-vous la reformuler?
Bonjour!
Peux-tu nous mettre ce notebook à notre disposition? Car ce qui se trouve sur github ne détaille pas ces 5 méthodes.
Merci
Bonjour, je vais le faire oui (tu peux aussi retrouver ca sur le site de sklearn)
cette façon d'alterner la manipulation d'un jeu de cartes pour expliquer des concepts abstraits , je ne peux que valider. merci
Salut ...est ce que je peux avoir un petit exemple de cross validation avec le langage R.
Je ne maitrise pas R malheureusement.