Ensembles d'entraînement et de test: division des données

Le module précédent a présenté l'idée de diviser un ensemble de données en deux sous-ensembles:

  • Ensemble d'entraînement : sous-ensemble destiné à l'entraînement d'un modèle.
  • Ensemble de test : sous-ensemble permettant de tester le modèle entraîné.

Vous pouvez diviser l'ensemble de données comme suit:

Barre horizontale divisée en deux parties: 80% pour l'ensemble d'entraînement et 20% pour l'ensemble d'évaluation.

Figure 1. Diviser un seul ensemble de données en un ensemble d'entraînement et un ensemble de test

Assurez-vous que votre ensemble de test remplit les deux conditions suivantes:

  • est suffisamment grande pour produire des résultats statistiquement pertinents ;
  • Elles sont représentatives de l'ensemble de données dans son ensemble. En d'autres termes, ne choisissez pas un ensemble de test dont les caractéristiques sont différentes de celles de l'ensemble d'entraînement.

En supposant que votre ensemble de test réponde aux deux conditions précédentes, votre objectif est de créer un modèle qui se généralise bien aux nouvelles données. Notre ensemble de test sert de proxy pour les nouvelles données. Prenons l'exemple suivant. Notez que le modèle appris pour les données d'entraînement est très simple. Ce modèle n'est pas parfait. Quelques prédictions sont incorrectes. Cependant, ce modèle fonctionne à peu près aussi bien avec les données de test qu'avec les données d'entraînement. En d'autres termes, ce modèle simple ne surapprend pas les données d'entraînement.

Deux modèles: l'un s'exécute sur les données d'entraînement et l'autre sur les données de test.  Le modèle est très simple : il suffit d'une ligne séparant les points orange des points bleus.  La perte pour les données d'entraînement est semblable à la perte pour les données de test.

Figure 2 Valider le modèle entraîné par rapport aux données de test

N'utilisez jamais des données de test pour l'entraînement. Si vous constatez des résultats étonnamment bons sur vos métriques d'évaluation, cela peut signifier que vous avez effectué accidentellement un entraînement sur l'ensemble de test. Par exemple, une justesse élevée peut indiquer que des données de test ont été divulguées dans l'ensemble d'entraînement.

Prenons l'exemple d'un modèle qui prédit si un e-mail est du spam en utilisant l'objet, le corps de l'e-mail et l'adresse e-mail de l'expéditeur comme caractéristiques. Nous répartissons les données dans les ensembles d'entraînement et de test, selon une répartition 80-20. Après l'entraînement, le modèle atteint une précision de 99% sur l'ensemble d'entraînement et l'ensemble de test. La précision de l'ensemble de test devrait être inférieure. Nous réexaminons donc les données et découvrons que de nombreux exemples dans l'ensemble de test sont des doublons d'exemples de l'ensemble d'entraînement (nous avons négligé de supprimer les entrées en double pour le même spam de notre base de données d'entrée avant de diviser les données). Nous nous sommes entraînés par inadvertance à partir de certaines de nos données de test. Par conséquent, nous ne mesurons plus avec précision la capacité de notre modèle à généraliser à de nouvelles données.