CROSS-VALIDATION SKLEARN PYTHON (Techniques expliquées en Français)

preview_player
Показать описание
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

Par exemple:

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:

► REJOINS NOTRE COMMUNAUTÉ DISCORD

► Recevez gratuitement mon Livre:
APPRENDRE LE MACHINE LEARNING EN UNE SEMAINE
CLIQUEZ ICI:

► Télécharger gratuitement mes codes sur github:

Рекомендации по теме
Комментарии
Автор

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 <= au nombre de groups !

Par exemple, si vous disposez de 5 groupes d'individus différents, alors vous ne pouvez pas avoir plus de 5 splits: GroupKFold(n_splits=5)
Ensuite, vous devez utiliser la méthode split:
GroupKFold(n_splits=5).split(X, y, groups)

Voila ! Encore désolé pour cette erreur d'étourderie de ma part ! J’espère que vous pourrez tous voir mon message !

2) J'ai testé un nouveau format de vidéo, sans montage, pour fournir des explications de façon plus "posée", plus "humaine". J'ai besoin de savoir si ce format vous plait, ou non !
Donc merci de me dire en commentaire si je peux continuer a produire des vidéos en alternant "grosse vidéo" et "vidéo Live". Mon but est de produire des vidéos plus souvent, pour vous aider toujours plus, avec une bonne qualité d'explications, et une petite dose de divertissement ! :)





Merci beaucoup et codez bien !

MachineLearnia
Автор

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 !

mielissamielisse
Автор

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 !!!

jeromebesson
Автор

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

pouillykim
Автор

Brillant !!! Simplicité, sobriété, clarté !
Merci !

hubertorhant
Автор

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 :)

julienjacquemont
Автор

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!!!

clementcomes
Автор

bonjour vraiment votre pédagogie est exceptionnel malgré que je suis des cours sur Udemy vos vidéos sont les meilleures

moussabamba
Автор

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.

maryam.immoparis
Автор

Très bonne vidéo!! Félicitation pour les 3000 🎉

seddaouiyassine
Автор

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 :)

aurelienspitaels
Автор

Salut Guillaume. J'aime beaucoup ton explication ! Ta chaîne progresse à un rythme impressionnant, jespere que ça continuera sur cette lancée !!

ilyestalbi
Автор

Vous êtes une immense source d'inspiration in data science, bon courage !

hamithassaniousman
Автор

Je n'ai jamais vu une explication aussi claire et visuelle. Le top !

jackseg
Автор

J'adore le format! merci pour tes vidéos c'est une mine d'or et en fr !

lucasb.
Автор

c'est parfait, un grand mercii, i'am realy addicted to your lessons.bravo

JamliRima
Автор

courage a toi,
Merci pour toutes tes vidéos qui ne cessent de m'aider

erickshado
Автор

Merci beaucoup !
Ce format est riche et de bonne qualité.
J’ai trop liker cette vidéo, très bonne pédagogie :)

mackas
Автор

Merci vous êtes d'une grande aide !

mcvtv
Автор

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.

jmbdeblois