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:
https://machinelearnia.com/
► REJOINS NOTRE COMMUNAUTÉ DISCORD
/ discord
► Recevez gratuitement mon Livre:
APPRENDRE LE MACHINE LEARNING EN UNE SEMAINE
CLIQUEZ ICI:
https://machinelearnia.com/apprendre-...
► Télécharger gratuitement mes codes sur github:
https://github.com/MachineLearnia
► Abonnez-vous : / @machinelearnia
► Pour En Savoir plus : Visitez Machine Learnia : https://machinelearnia.com/