Les actualités du Freelance

Cross validation : évaluer pour mieux deviner

Publié le 10/07/2024
Cross validation : évaluer pour mieux deviner

En informatique, la cross validation, aussi appelée validation croisée, sert à tester la performance des modèles de prédiction. Elle consiste à croiser les données servant d’une part à l’entraînement du modèle et d’autre part au test de celui-ci. Son but est de minimiser le surapprentissage de l’algorithme et d'offrir une évaluation plus précise de ses performances.

Pourquoi évaluer les modèles de prédiction ?

Par définition, un modèle de prédiction sert à anticiper un résultat à partir de données sources. On peut citer le diagnostic médical comme exemple : d’après les prélèvements effectués sur un patient, on doit pouvoir déterminer si celui-ci est atteint ou non de la maladie recherchée. Mal évalué, un modèle risque de passer à côté d’un diagnostic de maladie. Il pourrait aussi mettre inutilement en route des examens complémentaires et des traitements sur des personnes saines.

Généralisation et surapprentissage

Naturellement, le modèle s’adapte aux données sur lesquelles il a été entraîné et fournit une décision juste pour ce jeu de données particulier. Cela ne garantit cependant pas qu'il fonctionnera aussi bien sur un autre panel. La cross validation s'assure de sa performance sur d’autres ensembles, c’est-à-dire le fait que le modèle généralise correctement.

On dit d’un modèle qu’il est en surapprentissage lorsqu’il s’ajuste trop étroitement (overfitting) aux données d’entraînement et qu’il généralise donc mal. En testant le modèle sur des données nombreuses et indépendantes, la cross validation détecte et prévient ce phénomène.

Utilisation de la matrice de confusion

À elle seule, la cross validation ne permet pas d’ajuster le modèle, c’est le rôle de la matrice de confusion.

Dans un premier temps, la validation croisée génère des prédictions. Ensuite, celles-ci sont comparées aux valeurs réelles. Enfin, les résultats de ces comparaisons (vrais et faux positifs, vrais et faux négatifs) sont implémentés dans une matrice de confusion.

Cet outil mathématique permet de calculer les métriques qui renseignent sur la performance du modèle et aident à identifier ses faiblesses spécifiques dans certaines parties du jeu de données. Combiner matrice de confusion et cross validation garantit une évaluation robuste des modèles de prédiction.

Le train-test split

Le train-test split consiste à utiliser un seul jeu de données pour réaliser à la fois l’entraînement et le test de la performance du modèle.

Division (split) du jeu de données

Le train-test split consiste à diviser un jeu de données. Certaines sont utilisées pour l'entraînement (train) et l’autre pour la vérification (test).

Prenons pour exemple l’entraînement à la détection de la sclérose en plaques. Les mesures et relevés effectués sur un panel concernent deux types de personnes : atteintes, ou non atteintes. Ces deux catégories constituent l’ensemble de l'échantillon.

Une grande partie des données est fournie au modèle pour l’entraînement en lui indiquant le statut associé (malade ou sain). Le statut de l’autre partie lui est caché et sert à vérifier qu’il prédit correctement si la personne est malade ou non.

Utilisation du train-test split

Le train-test split peut être automatisé dans un pipeline end to end de machine learning. Ceci assure la séparation des données à chaque étape et garantit la cohérence de l’évaluation ainsi que la reproductibilité des résultats.

Le train-test split est simple et rapide, mais présente deux inconvénients majeurs :

Une variance élevée de la performance du modèle, selon la façon dont les données ont été divisées ; La perte d’information liée aux valeurs utilisées seulement pour le test, alors qu’elles auraient pu servir à entraîner le modèle.

La méthode des K-folds

La méthode des K-folds est une technique de cross validation qui surmonte certains des inconvénients du train-test split.

Répartition et itération des tests

Au lieu de mettre de côté des données fixes pour le test et donc perdre en information, on réalise l’opération plusieurs fois sur des combinaisons de sous-ensembles (folds).

Par exemple, un jeu de données est divisé en 3 folds : A, B et C.

  • Au premier passage, le modèle est entraîné avec les sous-ensembles A et B et sa performance est testée sur C ;
  • Au second passage, elle est entraînée sur A et C et testée sur B ;
  • Au troisième, elle est entraînée sur B et C et testée sur A ;
  • Les valeurs de performances obtenues à chaque passage servent à calculer une moyenne indiquant la performance du modèle.

Dans la réalité, le nombre K de folds varie généralement entre 5 et 10.

Avantages et inconvénients du K-folds

La cross validation K-folds permet une meilleure estimation de la performance et optimise la valeur du jeu de données. Elle est néanmoins plus coûteuse en termes de calcul, notamment pour les modèles complexes et les données volumineuses.

Afin de s’assurer que les algorithmes atteignent les niveaux de performances souhaités, les développeurs définissent des tests basés sur les résultats de la cross validation : c’est l’approche TDD (Test Driven Development). La méthode des K-folds peut être totalement intégrée dans cette stratégie de développement piloté par les tests.

La méthode des K-folds est particulièrement utile pour évaluer l'efficacité des réseaux de neurones convolutifs. VGG, couramment utilisé pour la classification d'images, en est un très bon exemple.

L’équilibre du jeu de données

Comme dans toute méthode statistique, la représentation des catégories dans l’échantillon, et par conséquent dans les folds, influence énormément la qualité des résultats. Un jeu de données déséquilibré est un biais majeur dans l’estimation du succès d’un modèle.

Un algorithme entraîné sur un jeu de données déséquilibré privilégie les classes majoritaires au détriment des classes minoritaires. Le modèle doit apprendre à traiter toutes les classes de manière équitable. Il existe deux stratégies pour remédier à la disparité : la stratified K-folds et le rééchantillonnage.

Stratified K-folds cross validation

La méthode du stratified K-folds cross validation est une variante améliorée de la validation croisée K-folds. Elle vise à garantir que chaque fold possède approximativement la même proportion de classes que l'ensemble de données d'origine. Cette stratification améliore la représentativité des sous-ensembles.

La division, au lieu de se faire de manière aléatoire, est réalisée par stratification. Ceci permet de conserver, dans le fold, la même représentation des catégories que dans l’échantillon total. Par exemple, si une catégorie ne représente que 12 % de la totalité, la stratification permet de préserver cet ordre de grandeur dans le sous-ensemble.

Le rééchantillonnage

Le rééchantillonnage est une autre technique de traitement de jeux de données déséquilibrés en machine learning. Il existe deux façons d’effectuer le rééchantillonnage : en favorisant les classes minoritaires ou en minorant les classes majoritaires.

Sur-échantillonnage des classes minoritaires (oversampling)

La technique d’oversampling consiste à augmenter le nombre d'exemples dans les classes minoritaires par duplication d’instances existantes ou par génération d’instances synthétiques :

  • Duplication : les instances de la classe minoritaire sont répliquées jusqu'à ce que le nombre d'exemples soit comparable à celui de la classe majoritaire ;
  • SMOTE (Synthetic Minority Over-sampling Technique) : de nouvelles instances synthétiques sont créées par interpolation entre les exemples existants de la classe minoritaire.

Sous-échantillonnage des classes prédominantes (undersampling)

Le principe d’undersampling est d’équilibrer le jeu de données en réduisant le nombre d'exemples dans les classes majoritaires :

  • Random undersampling : certaines instances de la classe prédominante sont supprimées de façon aléatoire jusqu'à ce que le nombre d'exemples soit comparable à celui de la classe minoritaire ;
  • Cluster centroids : la classe principale est réduite par regroupements (clustering), réduisant ainsi le nombre de prototypes. Un point central (réel ou moyenné), appelé centroïde, est désigné pour représenter le groupe.

En quelques mots, la cross-validation soutient le développement de modèles de machine learning robustes et fiables. Elle s’assure que les modèles généralisent correctement et garantit des prédictions précises et utiles dans des contextes variés : diagnostics médicaux, mais aussi prévisions financières et autres applications.

Vous êtes freelance ?
Sécurisez votre activité grâce au portage salarial !
Laissez un commentaire
Votre adresse email ne sera pas publiée