Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Test Data

Les données de test constituent un jeu mis de côté, évalué une seule fois après tout l’entraînement et le réglage, afin d’estimer les performances sur de nouvelles données. Découvre les répartitions, la taille, les pièges et le code.

Les données de test, également appelées jeu de test ou jeu de réserve, constituent la partie d’un jeu de données réservée à la mesure des performances d’un modèle d’apprentissage automatique (ML) terminé. Elles ne servent ni à ajuster les poids du modèle, ni à prendre des décisions de développement, par exemple sur l’architecture, les hyperparamètres, le point de contrôle ou le seuil de confiance ; le modèle est évalué une fois ces décisions arrêtées. Comme ni le modèle ni ses développeurs ne se sont adaptés à ces données, sa précision, son rappel ou sa précision moyenne (mAP) fournit une estimation non biaisée de ses performances sur de nouvelles données issues de la même distribution. C’est cette mesure que les équipes utilisent pour décider si un modèle est prêt à être déployé.

Jeux d’entraînement, de validation et de test#

Un jeu de données est généralement réparti en trois sous-ensembles disjoints, chacun ayant un rôle différent :

  • Données d’entraînement : Les exemples à partir desquels l’optimiseur apprend en ajustant les poids pour réduire la perte.
  • Données de validation : Évaluées à plusieurs reprises pendant le développement pour comparer les hyperparamètres, arrêter l’entraînement de façon anticipée et choisir le meilleur point de contrôle.
  • Données de test : Évaluées une seule fois à la fin pour communiquer la métrique sur laquelle le projet est jugé.

Les répartitions 80/10/10 ou 70/15/15 sont courantes pour les jeux de données contenant des milliers d’exemples, tandis que les jeux de données de plusieurs millions d’exemples peuvent en réserver quelques pour cent. La taille nécessaire du jeu de test dépend de la précision requise : l’erreur type d’une précision p mesurée sur n exemples est la racine carrée de p(1 − p)/n. Ainsi, 1 000 images de test avec une précision de 90 % donnent un intervalle de confiance à 95 % d’environ ±1,9 point de pourcentage, tandis que 10 000 images le ramènent à environ ±0,6. La terminologie varie selon les domaines, et de nombreux articles présentent leurs résultats finaux sur ImageNet à partir du jeu de validation officiel, car les étiquettes de test d’ImageNet ne sont pas publiques. Dans Ultralytics YOLO, un fichier YAML de jeu de données exige les chemins train et val, et accepte un chemin facultatif test ; l’entraînement évalue val après chaque époque pour choisir best.pt, et model.val(data="data.yaml", split="test") évalue le modèle terminé sur les images mises de côté en mode validation.

Pourquoi le jeu de test doit rester intact#

Chaque décision prise en consultant un score adapte un peu le modèle à ces données. Lorsque de nombreuses configurations sont comparées sur le jeu de validation, la configuration gagnante est en partie celle qui a eu de la chance sur ces exemples précis ; son score de validation surestime donc ses performances ailleurs. L’expérience suivante avec scikit-learn choisit le meilleur nombre de voisins pour un classificateur des k plus proches voisins sur un petit jeu de données bruité, puis compare la précision en validation et en test de la configuration gagnante sur 30 jeux de données aléatoires :

import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

val_scores, test_scores = [], []
for seed in range(30):
    # A small, noisy dataset split 60/20/20 into train, validation, and test
    X, y = make_classification(n_samples=400, n_features=20, n_informative=4, flip_y=0.2, random_state=seed)
    X_train, X_rest, y_train, y_rest = train_test_split(X, y, test_size=0.4, random_state=seed)
    X_val, X_test, y_val, y_test = train_test_split(X_rest, y_rest, test_size=0.5, random_state=seed)

    # Model selection: keep the neighbor count with the best validation accuracy
    scores = {k: KNeighborsClassifier(k).fit(X_train, y_train).score(X_val, y_val) for k in range(1, 51)}
    best_k = max(scores, key=scores.get)
    val_scores.append(scores[best_k])

    # The test set is scored once, after the choice is final
    test_scores.append(KNeighborsClassifier(best_k).fit(X_train, y_train).score(X_test, y_test))

print(f"Chosen model, mean of 30 runs: validation {np.mean(val_scores):.3f}, test {np.mean(test_scores):.3f}")

Les modèles choisis obtiennent en moyenne 0,805 en validation et 0,758 en test ; la sélection parmi 50 candidats a donc gonflé l’estimation de validation de près de cinq points. Régler le modèle en fonction du jeu de test masquerait cet écart et introduirait le même biais optimiste dans le résultat publié : c’est une forme de fuite de données. Les benchmarks publics s’en prémunissent en gardant les étiquettes secrètes : les résultats sur le jeu de test de COCO sont obtenus en soumettant les prédictions à un serveur d’évaluation. Pour les grands modèles de langage (LLM), les questions de test présentes dans les données de préentraînement à l’échelle du Web contaminent un benchmark. C’est pourquoi LiveCodeBench ajoute continuellement de nouveaux problèmes de concours et évalue chaque modèle sur des problèmes publiés après la fin de son entraînement.

Constituer un jeu de test fiable#

Un score de test ne prédit les performances en situation réelle que si le jeu de test ressemble aux données rencontrées par le modèle, qu’il s’agisse de scènes de rue pour les véhicules autonomes ou d’examens pour l’analyse d’images médicales :

  • Reproduis les conditions de déploiement : Les caméras, l’éclairage, les saisons, la géographie et l’équilibre des classes doivent refléter la production. Le jeu de test d’un détecteur de conduite doit inclure des scènes nocturnes, pluvieuses et enneigées, même si la plupart des trajets ont lieu par beau temps.
  • Garde-les indépendants : Les images d’une même vidéo, les scans d’un même patient et les photos d’une même scène doivent appartenir à une seule séparation. Les données ordonnées dans le temps sont séparées par date, afin que le modèle soit testé sur le futur.
  • Teste sur plusieurs sources : En imagerie médicale, une validation externe sur des examens provenant d’autres hôpitaux et modèles de scanner montre si le modèle a appris l’anatomie ou le matériel d’un seul établissement.
  • Nettoie les étiquettes : Les erreurs dans les étiquettes de test plafonnent la précision mesurable et peuvent modifier le classement des modèles ; les étiquettes de test méritent donc une vérification particulièrement minutieuse.
  • Présente les résultats par sous-ensemble : Les métriques par classe et par condition révèlent des échecs qu’une moyenne unique masque.

Même un jeu de test reconstitué avec soin peut faire évoluer les résultats : lorsque des chercheurs ont recréé le jeu de test ImageNet en suivant le processus de collecte original, la précision a baissé de 11 à 14 points de pourcentage pour un large éventail de modèles. Les gains obtenus sur le jeu de test original se sont toutefois maintenus, et les auteurs ont attribué la baisse à des images légèrement plus difficiles plutôt qu’à des années de réutilisation du jeu de test.

  • Validation croisée : Fait varier la partie des données de développement utilisée pour la validation, ce qui fournit une estimation plus stable pour la sélection du modèle. Un jeu de test distinct fournit toujours le résultat final.
  • Jeu de données de référence : Un jeu de test public partagé par un domaine de recherche. Comme toutes les équipes l’évaluent pendant des années, il finit peu à peu par ne plus être constitué de données inédites.
  • Jeu de données de référence de haute qualité : Un jeu de référence sélectionné avec soin et de haute qualité, dont les réponses ont été vérifiées ; il sert souvent de jeu de test fixe pour les tests de régression des applications LLM.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique