4
 min read

Structurer son Projet de machine learning

Cet article explore l'importance d'une structure solide dans les projets de machine learning et présente CookieCutter, un outil puissant pour organiser vos travaux de data science. Vous y découvrirez les principes clés d'une analyse de données reproductible, notamment l'approche DAG (graphe orienté acyclique), l'importance des données brutes immuables, et l'utilisation judicieuse des notebooks et du code source. L'article souligne également l'importance de la documentation des expériences de modélisation et offre des conseils pratiques pour améliorer la qualité et la reproductibilité de vos projets de machine learning. Une lecture essentielle pour tout data scientist cherchant à professionnaliser sa démarche et à optimiser ses flux de travail.

Structurer son Projet de machine learning

La technique est indispensable. C’est bien souvent par elle que commence le progrès. Ce n’est qu’après que les chercheurs interviennent en l’intellectualisant; c’est du moins ce que soutient Nicolas Nassim Taleb dans « antifragile »

Toutefois la technique n’est pas tout. Avoir une structure clair et bien pensée permet d’aller plus loin et plus vite sur le long terme.

Et en Datascience, on a la chance que CookieCutter s’en soit occuper en concevant une template auquel notre projet devrait s’efforcer de ressembler. Car suivre rigoureusement quelque chose sans se poser des questions n’est jamais une bonne chose; alors n’hésitez pas à prendre vos liberté et adapter la structure à votre cas!

Cookie Cutter - Qu’est-ce que c’est ?

Cookie Cutter est un cli qui permet de générer une structure pour les projets data science.

Il rajoute une grosse part de « sérieux » et donne enfin cet aspect « industrieux » qui manque tant à notre discipline.

On n’est plus au niveau d’un data-scientist qui crée 2-3 notebooks et de la data dans tous les sens. Avec qui on peut avoir quelques rapports et analyses bien jolis, mais les étapes pour l’obtenir sont ésotériques et brumeux. La reproductibilité du code est jeté aux oublis. Alors que c’est un point essentiel de la qualité du code.

Un code qui permet de retrouver des résultats corrects et reproductibles.

Cela se fait en 2 commandes :

pip install cookiecutter-data-science
ccds

On obtient alors la structure suivante , modulo quelques changement selon les paramètres de votre projet

Best Practices Machine learning :

et Pourquoi Cookie Cutter en est un condensé ?

1 .  L’analyse de données doit être vue comme un graphe orienté acyclique (DAG).

Les éléments les plus importants d'une analyse de données de qualité sont la justesse et la reproductibilité.

—> Toute personne doit pouvoir relancer votre analyse en utilisant uniquement votre code et les données brutes pour obtenir les mêmes résultats finaux.

Pour cela,  il faut considérer votre pipeline d'analyse comme un DAG, où chaque étape est un nœud dans un graphe orienté sans boucle.

Vous pouvez exécuter le graphe dans un sens pour recréer n'importe quel résultat d'analyse, ou le parcourir en sens inverse pour examiner la combinaison de code et de données qui a conduit à ce résultat

2. Les données brutes sont immuables

Dans une analyse de données vue comme un graphe orienté acyclique (DAG), les données brutes doivent rester immuables. Vous pouvez les lire et les copier pour créer de nouveaux résultats, mais ne les modifiez jamais directement.

À éviter :

  • Ne modifiez jamais les données brutes, surtout pas manuellement ou dans Excel.
  • Ne remplacez pas les données brutes par des versions traitées.
  • Ne sauvegardez pas plusieurs versions des données brutes.

À noter, qu’il faut éviter des mettre sa donnée dans les sources control tels que git. Mettez les plutôt dans un cloud ( S3, Azure Blob storage …) ou dans un serveur on-prem.

Le folder « data/» devrait aller directement dans le .gitignore

3. Les notebooks sont pour l'exploration et la communication, le code source est pour la répétition

Les notebooks, comme Jupyter Notebook ou Apache Zeppelin, sont excellents pour l'exploration des données et la visualisation rapide des résultats. Cependant, ils sont moins adaptés pour reproduire une analyse. Le code source est supérieur pour la répétabilité car il est plus portable, plus facile à tester et à relire.

4. Refactorisez les bonnes parties dans du code source

Évitez de répéter le même code dans plusieurs notebooks.

‼️ Les signes que vous êtes prêt à passer du notebook au code source incluent :

  • la duplication de notebooks pour en créer de nouveaux
  • le copier-coller de fonctions entre notebooks
  • la création de classes orientées objet dans des notebooks.

💡Tips : Exécuter cela dans la première cellule du notebook

%load_ext autoreload
%autoreload 2

Pour que les changements dans votre code source soient pris en compte dans votre notebook directement.

5. Ne pas négliger l’organisation des modèles

Documenter les expériences de modélisation est essentiel pour assurer la reproductibilité, l'apprentissage continu et l'amélioration. Vous devez mettre en place des procédures de documentation permettant d'identifier au minimum

  • la provenance des données
  • la version du code utilisée
  • les métriques de performance.

Vous pouvez même utiliser des outils plus avancés tel que MLFlow.

Want receive the best AI & DATA insights? Subscribe now!

•⁠  ⁠Latest new on data engineering
•⁠  ⁠How to design Production ready AI Systems
•⁠  ⁠Curated list of material to Become the ultimate AI Engineer

Latest Articles

Prompt Engineering Best Practices: Complete Comparison Matrix

Prompt Engineering Best Practices: Complete Comparison Matrix

I've analyzed the official prompt engineering guidelines from OpenAI (GPT-4.1), Anthropic (Claude 3.7/4/Reasoning), and Google (Gemini) to create the first comprehensive comparison matrix. This comprehensive guide compares prompt engineering techniques across different leading models – helping you get better results from any AI model you use.

AI Engineering
AI Engineering
Clock Icon - Tech Webflow Template
7
 min read
Testing Glue Jobs Locally

Testing Glue Jobs Locally

Ce guide pratique explique comment tester localement les jobs AWS Glue, un service serverless d'intégration de données. L'article souligne l'importance du test local pour accélérer le développement, réduire les coûts et faciliter le débogage. Il détaille ensuite une méthode en trois étapes pour configurer un environnement de test local. Ce tutoriel vise à optimiser le processus de développement des jobs AWS Glue, permettant aux data engineers de tester efficacement leur code avant le déploiement en production.

Data Engineering
Data Engineering
Clock Icon - Tech Webflow Template
10
 min read
Raycast ou Comment Exploser sa Productivité sur Mac en 2025 : Guide Complet pour Travailler 3x Plus Vite

Raycast ou Comment Exploser sa Productivité sur Mac en 2025 : Guide Complet pour Travailler 3x Plus Vite

Découvrez comment Raycast a radicalement transformé mon expérience sur mon Mac en 2025. Il m'a permis de facilement mettre un raccourcis sur tout, rajouter de l'IA dans tous mes workflows, en automatisant les tâches répétitives et en éliminant les distractions. Dans ce guide, apprenez à configurer votre propre système de raccourcis, assistants IA et explorez les extensions essentielles de Raycast pour révolutionner votre façon de travailler.

Dev Productivity
Dev Productivity
Clock Icon - Tech Webflow Template
10
 min read