Projet : Problème de ML sur des données réelles d'Open Food Fact
Description générale
Dans ce projet, votre tâche consiste à répondre à un problème réel de la communauté d'Open Food Fact afin de les aider à résoudre un de leur défi, à savoir proposer des méthodes de clustering pour améliorer la catégorisation des produits de manière plus fine que celle existante.
L'objectif de ce défi est de travailler à produire un workflow dans un dépôt git
contenant du code et des analyses pour répondre à cette problématique.
Le projet sera découpé en deux phases, une première phase individuelle suivie d'une phase d'équipe
Processus de travail (phase individuelle)
0. Inscrivez vous sur le dépot git (lien donné par le professeur)
0.1 Installez votre environnement virtuel pour le projet, suivant les instructions données sur le dépot
0.2. Consultez les tâches, accessibles sur l'onglet projects
du dépot git et positionnez sur les tâches qui vont intéressent
1. Créez une branche pour chaque tâche à traiter
Afin d'adopter des bonnes pratiques de développement (et faciliter la revue), vous devez créer une branche par tâche que vous développez en faisant attention à lui donner un nom explicite: numero-tache_nom-développeur
2. Développez du code pour répondre à la tâche
Ecrivez une brique de code encapsulée dans une fonction ou une classe
3. Faîtes une pull request
Une fois terminé le développement du code pour votre tâche, poussez vos changements sur la branche dédiée à votre fonctionnalité.
Une pull request
devrait apparaître automatiquement sur notre le dépôt du projet, si ca n'est pas le cas vous pouvez la créer manuellement à partir de la page des branches du projet
Si nécessaire, mettez des commentaires dans la pull request
pour expliquer à minima ce que vous avez fait et les fichiers sur lesquels vous avez travaillé
4. Surveillez les commentaires de revue
Je passe en revue vos pull request
et vous demande parfois des modifications complémentaires.
Après une revue, vous pourrez apporter les modifications demandées, votre tâche sera ensuite définitivement traitée, il n'y aura pas de revue supplémentaire.
Phase individuelle
Le projet a été découpé en tâches. Chaque participant choisit et se positionne sur une sélection de tâches à accomplir, développe du code python pour y répondre, le soumet à la revue du professeur (sur un dépot git dédié), et obtient des points en fonction de sa contribution. Vous trouverez plus de détails concernant les consignes détaillées pour chaque carte tâche sur la carte Trello correspondante.
Phase d'équipe
Dans cette phase, les participants se groupent par équipe de 3 personnes.
L'objectif de cette phase est de produire les briques de code et d'analyse minimales pour constituer une chaîne de traitement pour répondre au défi. Afin de rendre le projet facilement ré-utilisable, vous devrez prêter une attention particulière à produire une chaîne de traitement composée de code documenté, modularisé et packagé !
Chaque équipe présentera ses résultats à la classe dans un format de 20 min (15 min d'exposé et 5 min de questions)
Données
Vous utiliserez le dataset fourni par Open Food Fact pour exploration, disponible à cette adresse, dont les champs sont décrits ici. Vous pouvez également compléter ce jeu de donnée par n'importe quel jeu de donnée qui vous paraît pertinent pour la tâche qui vous est confiée, à condition que la licence vous permette son exploitation. N'hésitez pas à aller voir la page du projet dédié aux données pour prendre connaissance des possibilités d'exportation de données depuis leurs bases de données.
Livrables & notation
Phase individuelle
Chaque participant remplit les cartes tableau sur lesquelles il s'est positionné et produit du code pour y répondre.
Pour chaque tâche, le participant soumet une demande de revue (pull request
ou merge request
) au professeur, répond au demandes d'améliorations et obtient des points lorsque la tâche est validée.
La note correspond à la somme des points obtenus pour les tâches validées. Chaque participant pourra suivre l'évolution de sa note en temps réel sur un tableau partagé
Critères d'évaluation
- la clarté et la facilité de réutilisation du code produit (documentation, respect des standards)
- la pertinence des analyses et résultats obtenus pour répondre à la question
Phase d'équipe
Chaque équipe doit fournir un dépot git et un document de synthèse pour la présentation orale du projet
Vous serez évalué par deux notes :
- 1 note évaluant la qualité de la chaîne de traitement et des résultats obtenus
- 1 note évaluant la qualité de la présentation
Critères d'évaluation
- la clarté et la facilité de réutilisation du code produit (documentation, respect des standards)
- la pertinence de la démarche globale (données, code, méthodes d'analyses, commentaire des résultats) pour répondre au problème
- la qualité de présentation de votre chaîne de traitement