Partager via


Empêcher le sur-ajustement et les données déséquilibrées avec le ML automatisé

Les données surajustées et déséquilibrées sont des pièges courants quand vous générez des modèles Machine Learning. Par défaut, la fonctionnalité ML automatisée dans Azure Machine Learning fournit des graphiques et des mesures pour vous aider à identifier ces risques. Cet article explique comment implémenter les meilleures pratiques dans ML automatisé pour atténuer les problèmes courants.

Identifier les surajustements

Le surajustement dans le Machine Learning se produit lorsqu’un modèle correspond trop bien aux données d’entraînement. Par conséquent, le modèle ne peut pas effectuer de prédictions précises sur les données de test non consultées. Le modèle mémorisait des motifs et des bruits spécifiques dans les données d’apprentissage, et il n’est pas suffisamment flexible pour effectuer des prédictions sur des données réelles.

Considérez les modèles entraînés suivants et leurs précisions d’entraînement et de test correspondantes :

Modèle Précision d’entraînement Précision de test
Un 99,9 % 95 %
B 87 % 87 %
C 99,9 % 45 %
  • Modèle A : le test de ce modèle produit un peu moins de justesse que l’entraînement du modèle. Il existe une idée fausse selon laquelle si la précision de test sur des données invisibles est inférieure à la justesse d’entraînement, le modèle est surajusté. Toutefois, la précision des tests doit toujours être inférieure à la justesse de l’entraînement. La distinction entre le surajustement et l’ajustement approprié des données revient à mesurer à quel point la justesse est inférieure.

  • Modèle A par rapport au modèle B : le modèle A est un meilleur modèle, car il a une justesse de test plus élevée. Bien que la justesse du test soit légèrement inférieure à 95 %, ce n’est pas une différence significative qui suggère la présence d’un surajustement. Le modèle B n’est pas préféré, car les précisions d’entraînement et de test sont similaires.

  • Modèle C : ce modèle représente un cas clair de surajustement. La justesse de l’entraînement est élevée et la précision du test est faible. Cette distinction est subjective, mais provient de la connaissance de votre problème et de vos données, ainsi que des amplitudes d’erreur acceptables.

Empêcher le surajustement

Dans les cas les plus flagrants, un modèle surajusté suppose que les combinaisons de valeurs de caractéristiques visibles pendant l’entraînement produiront toujours la même sortie pour la cible. Pour éviter le surajustement de vos données, il est recommandé de suivre les meilleures pratiques de Machine Learning. Il s’agit de plusieurs méthodes que vous pouvez configurer dans votre implémentation de modèle. Le ML automatisé fournit également d’autres options par défaut pour empêcher le surajustement.

Le tableau suivant récapitule les meilleures pratiques courantes :

Bonnes pratiques Implémentation ML automatisé
Utiliser davantage de données d’apprentissage et éliminer les biais statistiques X
Empêcher la fuite de cible X
Incorporer moins de caractéristiques X
Prendre en charge la régularisation et l’optimisation des hyperparamètres X
Appliquer des limitations de complexité du modèle X
Utiliser la validation croisée X

Appliquer les meilleures pratiques pour empêcher le surajustement

Les sections suivantes décrivent les meilleures pratiques que vous pouvez utiliser dans l’implémentation de votre modèle Machine Learning pour empêcher le surajustement.

Utiliser davantage de données

L’utilisation de davantage de données est le meilleur moyen (et le plus simple) d’empêcher le surajustement et elle permet généralement d’augmenter la justesse. Lorsque vous utilisez davantage de données, il devient plus difficile pour le modèle de mémoriser des motifs exacts. Le modèle est forcé d’atteindre des solutions plus flexibles pour prendre en charge davantage de conditions. Il est également important de reconnaître le biais statistique afin de garantir que vos données d’entraînement n’incluent pas de patterns isolés qui n’existeront pas dans les données de prédictions dynamiques. Ce scénario peut être difficile à résoudre puisqu’il peut avoir un sur ajustement présent en comparaison avec les données de test en direct.

Empêcher la fuite de cible

La fuite de cible est un problème similaire. Il se peut que vous ne voyiez pas de surajustement entre les jeux d’apprentissage et de test, mais le problème de fuite s’affiche au moment de la prédiction. La fuite de cible se produit quand votre modèle « triche » lors de l’entraînement en ayant accès à des données auxquelles il ne devrait normalement pas avoir accès au moment de la prédiction. Par exemple, on peut demander le lundi au modèle de prédire le prix des produits de base vendredi. Si vos fonctionnalités incluent accidentellement des données à partir des jeudis, le modèle a accès aux données non disponibles au moment de la prédiction, car il ne peut pas voir l’avenir. La fuite de cible est une erreur facile à manquer. Elle est souvent visible là où vous avez une justesse anormalement élevée pour votre problème. Si vous tentez de prédire des cours boursiers et que vous avez entraîné un modèle à 95 % de justesse, il est probable qu’il existe des fuites de cible quelque part dans vos caractéristiques.

Incorporer moins de caractéristiques

La suppression de caractéristiques peut aussi aider en cas de surajustement, en empêchant que le modèle ait un trop grand nombre de champs à utiliser pour mémoriser des patterns spécifiques, ce qui le rend plus flexible. Elle peut être difficile à mesurer quantitativement. Si vous pouvez supprimer des fonctionnalités et conserver la même justesse, votre modèle peut être plus flexible et réduire le risque de surajustement.

Passer en revue les fonctionnalités ML automatisées pour empêcher le surajustement

Les sections suivantes décrivent les meilleures pratiques fournies par défaut dans ML automatisé pour empêcher le surajustement.

Prise en charge de la régularisation et du réglage des hyperparamètres

La régularisation est le processus qui consiste à minimiser une fonction de coût pour pénaliser les modèles complexes et surajustés. Il existe différents types de fonctions de régularisation. En général, toutes les fonctions pénalisent la taille, la variance et la complexité du coefficient du modèle. Le ML automatisé utilise L1 (Lasso), L2 (Ridge) et ElasticNet (L1 et L2 simultanément) dans différentes combinaisons avec des paramètres d’hyperparamètres de modèle différents qui contrôlent le surajustement. Le ML automatisé fait varier le degré de régulation d’un modèle et choisit le résultat le plus juste.

Appliquer des limitations de complexité du modèle

Le ML automatisé implémente également des limitations de complexité de modèle explicites afin d’empêcher le surajustement. Dans la plupart des cas, cette implémentation est spécifiquement destinée aux algorithmes d’arbres ou de forêts décisionnelles. La profondeur maximale de l’arbre individuel est limitée et le nombre total d’arbres utilisés dans les techniques de forêt ou d’ensemble est limité.

Utiliser la validation croisée

La validation croisée est le processus qui consiste à prendre de nombreux sous-ensembles de vos données d’entraînement complètes et à entraîner un modèle sur chaque sous-ensemble. L’idée est qu’un modèle pourrait être « chanceux » et avoir une grande justesse avec un sous-ensemble, mais avec l’utilisation de nombreux sous-ensembles le modèle ne peut pas présenter de justesse élevée à chaque fois. Avec la validation croisée, vous fournissez un jeu de données d’exclusion de validation, vous spécifiez vos plis de validation croisée (le nombre de sous-ensembles), et le ML automatisé entraîne votre modèle et ajuste les hyperparamètres afin de minimiser les erreurs sur votre jeu de validation. Il est possible qu’un pli de validation croisée soit surajusté, mais en utilisant de nombreux plis, le processus réduit la probabilité que votre modèle final soit surajusté. L’inconvénient est que la validation croisée entraîne des temps d’entraînement plus longs, et par conséquent un coût plus élevé, car vous entraînez un modèle une fois pour tous les n sous-ensembles de validation croisée.

Remarque

La validation croisée n’est pas activée par défaut. Cette fonctionnalité doit être configurée dans les paramètres Machine Learning automatisés. Cependant, une fois que la validation croisée est configurée et qu’un jeu de données de validation est fourni, le processus est automatisé.

Identifier les modèles présentant des données déséquilibrées

Les données déséquilibrées se trouvent généralement dans les scénarios de classification de machine learning. Il s’agit des données dont le taux d’observations dans chaque classe est disproportionné. Ce déséquilibre peut donner une idée faussement positive de la justesse d’un modèle parce que les données d’entrée présentent un biais vers une classe, ce qui influence le modèle entraîné.

En outre, les travaux de ML automatisé génèrent automatiquement les graphiques suivants. Ces graphiques peuvent vous aider à comprendre la cohérence des classifications de votre modèle et à identifier les modèles potentiellement impactés par des données déséquilibrées.

Graphique Description
Matrice de confusion Évalue les étiquettes correctement classifiées par rapport aux étiquettes réelles des données.
Rappel de précision Évalue le ratio d’étiquettes correctes par rapport au ratio d’instances d’étiquettes trouvées dans les données.
Courbes ROC Évalue le ratio d’étiquettes correctes par rapport au ratio d’étiquettes considérées comme étant des faux positifs.

Traiter les données déséquilibrées

Dans le cadre de l’objectif de simplifier le workflow Machine Learning, le Machine Learning automatisé offre des fonctionnalités intégrées pour aider à gérer les données déséquilibrées :

  • Le ML automatisé crée une colonne de pondération comme entrée. Les lignes de données sont alors pondérées, ce qui peut accentuer ou réduire « l’importance » d’une classe.

  • Les algorithmes utilisés par ML automatisé détectent un déséquilibre lorsque le nombre d’échantillons dans la classe minoritaire est égal ou inférieur à 20 % du nombre d’échantillons dans la classe majoritaire. La classe minoritaire fait référence à l’un avec les plus rares échantillons et la classe majoritaire fait référence à celle avec la plupart des échantillons. Par la suite, le machine Learning automatisé exécute une expérience avec des données sous-échantillonnées pour vérifier si l’utilisation des poids des classes peut résoudre ce problème et améliorer les performances. S’il établit une meilleure performance par le biais de cette expérience, il applique la solution.

  • Utilisation d’une métrique de performances qui gère mieux les données déséquilibrées. Par exemple, AUC_weighted est une métrique principale qui calcule la contribution de chaque classe en fonction du nombre relatif d’échantillons représentant cette classe. Cette métrique est plus robuste contre le déséquilibre.

Les techniques suivantes représentent d’autres options pour traiter les données déséquilibrées en dehors du ML automatisé :

  • Rééchantillonner pour rééquilibrer la classe. Vous pouvez échantillonner les classes plus petites ou sous-échantillonner des classes plus grandes. Ces méthodes demandent des compétences techniques pour le traitement et l’analyse.

  • Examinez les métriques de performances afin d’identifier les données déséquilibrées. Par exemple, le score F1 est la moyenne harmonique de la précision et du rappel. La précision mesure l’exactitude d’un classifieur, où une précision plus élevée indique moins de faux positifs. Le rappel mesure l’exhaustivité d’un classifieur, où un rappel plus élevé indique moins de faux négatifs.

Étape suivante