Cross Validation

Cross-Validation : définition et importance en Machine Learning

Bastien L

Bastien L

4 min

La Cross-Validation est une méthode permettant de tester les performances d’un modèle prédictif de Machine Learning. Découvrez les techniques les plus utilisées, et comment apprendre à les maîtriser.

Après avoir entraîné un modèle de Machine Learning sur des données étiquetées, celui-ci est supposé fonctionner sur de nouvelles données. Toutefois, il est important de s’assurer de l’exactitude des prédictions du modèle en production.

Pour ce faire, il est nécessaire de valider le modèle. Le processus de validation consiste à décider si les résultats numériques quantifiant les relations hypothétiques entre les variables sont acceptables en tant que descriptions des données.

Afin d’évaluer les performances d’un modèle de Machine Learning, il est nécessaire de le tester sur de nouvelles données. En fonction des performances des modèles sur des données inconnues, on peut déterminer s’il est sous-ajusté, sur-ajusté, ou ” bien généralisé “.

L’une des techniques utilisées pour tester l’efficacité d’un modèle de Machine Learning est la ” cross-validation ” ou validation croisée. Cette méthode est aussi une procédure de ” re-sampling ” (ré-échantillonnage) permettant d’évaluer un modèle même avec des données limitées.

Pour effectuer une ” CV ” (cross-validation), il est nécessaire d’écarter en amont une partie des données du dataset d’entraînement. Ces données ne seront pas utilisées pour entraîner le modèle, mais plus tard pour tester et valider le modèle.

On utilise couramment la Cross-Validation en Machine Learning pour comparer différents modèles et sélectionner le plus approprié pour un problème spécifique. Elle est à la fois simple à comprendre, simple à implémenter et moins biaisée que les autres méthodes. Découvrons à présent les principales techniques de validation croisée.

La technique du Train-Test Split

L’approche Train-Test Split consiste à décomposer de manière aléatoire un ensemble de données. Une partie servira à l’entraînement du modèle de Machine Learning, l’autre partie permettra de le tester pour la validation.

En général, on réserve 70% à 80% des données du dataset pour l’entraînement. Les 20 à 30% restants seront exploités pour la Cross-Validation.

Cette technique est efficace, sauf si les données sont limitées. Il peut alors manquer certaines informations sur les données qui n’ont pas été utilisées pour l’entraînement, et les résultats peuvent donc être hautement biaisés.

En revanche, si l’ensemble de données est vaste et que la distribution est égale entre les deux échantillons, cette approche convient tout à fait. Il est possible de séparer manuellement les données, ou d’utiliser la méthode train_test split de scikit-learn.

La méthode K-Folds

La technique K-Folds est simple à comprendre, et particulièrement populaire. Par rapport aux autres approches de Cross-Validation, elle résulte généralement sur un modèle moins biaisé.

Pour cause, elle permet d’assurer que toutes les observations de l’ensemble de données original aient la chance d’apparaître dans l’ensemble d’entraînement et dans l’ensemble de test. En cas de données d’input limitées, il s’agit donc de l’une des meilleures approches.

On commence tout d’abord par séparer l’ensemble de données de manière aléatoire en K folds. La procédure a un paramètre unique appelé ‘ K ” faisant référence au nombre de groupes dans lequel l’échantillon sera divisé.

La valeur de K ne doit être ni trop basse ni trop haute, et on choisit généralement une valeur comprise entre 5 et 10 en fonction de l’envergure du dataset. Par exemple, si K=10, le dataset sera divisé en 10 parties.

Une valeur K plus élevée mène à un modèle moins biaisé, mais une variance trop large peut conduire à un sur-ajustement. Une valeur plus basse revient à utiliser la méthode Train-Test Split.

On ajuste ensuite le modèle en utilisant les folds K-1 (K moins 1). Le modèle est validé en utilisant le K-fold restant. Les scores et les erreurs doivent être notés.

Le processus est répété jusqu’à ce que chaque K-fold serve au sein de l’ensemble d’entraînement. La moyenne des scores enregistrés est la métrique de performance du modèle.

Ce processus peut être effectué manuellement, ou à l’aide des fonctions cross_val_score et cross_val-predict de la bibliothèque Python Scikit-Learn. La fonction cross_val_score indique le score de chaque fold de test, tandis que la fonction cross_val_predict indique le score prédit pour chaque observation dans le dataset d’input lorsqu’il faisait partie de l’ensemble de test.

Dans le cas de figure où le modèle (estimateur) est un classificateur et que la variable cible (y) est binaire ou multiclasse, on utilise par défaut la technique ” StratifiedKfold “. Cette méthode rapporte des folds stratifiés, par exemple en maintenant le pourcentage d’échantillons pour chaque classe dans tous les folds. Ainsi, les données des folds d’entraînement et de test sont équitablement distribuées.

Dans les autres cas, la technique K_Fold est utilisée par défaut pour diviser et entraîner le modèle. Les folds peuvent être utilisés en tant qu’itérateurs ou dans une boucle pour effectuer l’entraînement sur un dataframe Pandas.

Comment apprendre à utiliser la Cross-Validation ?

La Cross-Validation est une étape incontournable dans le processus de Machine Learning. Afin d’apprendre à l’utiliser, vous pouvez opter pour les formations DataScientest.

Le Machine Learning et toutes ses techniques sont au coeur de nos parcours Data Scientist, Data Analyst et ML Engineer. Vous apprendrez ainsi tout le processus, les algorithmes, outils et méthodes visant à entraîner des modèles et à les mettre en production.

Nos formations professionnalisantes vous permettent d’acquérir toutes les compétences requises pour exercer les métiers de la Data Science, Ainsi, vous apprendrez aussi à maîtriser le langage de programmation Python, la manipulation des bases de données, la Dataviz et le Deep Learning.

Tous nos cursus peuvent être effectués en formation continue ou en BootCamp. Nous vous proposons par ailleurs une approche ” blended learning ” innovante alliant formation à distance et en présentiel pour profiter du meilleur des deux mondes.

Ces programmes sont conçus par des professionnels et pensés pour répondre aux besoins concrets des entreprises. Les apprenants reçoivent un diplôme certifié par l’Université de la Sorbonne, et 93% d’entre eux ont trouvé un emploi immédiatement. Découvrez les formations DataScientest !

Vous savez tout sur la Cross-Validation. Découvrez notre dossier complet sur le Machine Learning, et notre introduction au langage Python.