Data Science

Machine learning : rendre une expérience reproductible

Conserver les données, le code, les paramètres et les résultats nécessaires pour reprendre une expérience sans ambiguïté.

Un notebook qui affiche un bon résultat ne raconte pas toujours comment il a été obtenu. Quelques semaines plus tard, un fichier a changé, une cellule a été exécutée dans un autre ordre et la comparaison devient impossible. Une expérience utile doit laisser suffisamment de traces pour être reprise et discutée.

Constituer une fiche d’expérience

Commencez par un dossier identifié, associé à une question précise. « Comparer deux méthodes de préparation sur le même découpage » est plus exploitable que « améliorer le modèle ».

ÉlémentTrace à conserver
DonnéesVersion ou empreinte du fichier, provenance, période
CodeIdentifiant du commit et état des modifications locales
EnvironnementVersion de Python et versions des bibliothèques
DécoupageIdentifiants des lignes et règles de séparation
ParamètresConfiguration complète et graines aléatoires
RésultatsMétriques, effectifs et observations sur les erreurs

Cette fiche est une proposition d’organisation : elle peut tenir dans un fichier texte versionné. Aucun outil de suivi spécialisé n’est nécessaire pour commencer.

Séparer répétabilité et robustesse

Fixer les paramètres aléatoires aide à répéter une exécution dans un environnement donné. Cela ne démontre pas que la conclusion tient sur d’autres échantillons. Les bonnes pratiques de scikit-learn décrivent le rôle de random_state et ses effets sur les répétitions.

Une comparaison sérieuse conserve aussi les scores obtenus sur plusieurs partitions pertinentes. Présentez leur dispersion, sans la faire passer automatiquement pour un intervalle de confiance. Les modèles comparés doivent rencontrer les mêmes partitions pour que leurs différences soient interprétables.

Vérifier une reprise depuis zéro

Fermez la session de travail puis relancez le traitement dans l’ordre prévu, depuis les entrées documentées. Vérifiez les effectifs, les colonnes retenues et les résultats intermédiaires. Cette répétition révèle souvent une dépendance à une variable oubliée dans la mémoire du notebook.

Définissez ce qui doit être identique et ce qui peut varier. Une différence de dernière décimale ne se traite pas comme une disparition de lignes. Notez les tolérances retenues et leur raison.

Conserver davantage que le modèle

Le fichier du modèle ne remplace ni les données de référence, ni le code d’entraînement, ni les versions utilisées. La documentation sur la persistance des modèles recommande de conserver ces informations et indique que le chargement entre versions différentes de scikit-learn n’est pas pris en charge. Les formats fondés sur pickle doivent uniquement être chargés depuis une source de confiance.

Avant de partager une expérience, demandez à un collègue de retrouver le résultat à partir de la fiche. Les étapes qu’il doit vous demander sont précisément celles qui manquent encore à la documentation.

Pour poursuivre : choisir une métrique de classification et protéger son évaluation des fuites de données.