Over 10 years we help companies reach their financial and branding goals. Engitech is a values-driven technology agency dedicated.

Gallery

Contacts

411 University St, Seattle, USA

engitech@oceanthemes.net

+1 -800-456-478-23

période :
Juin - Août 2021
Base :
OpenFoodFacts
Client :
OpenClassrooms
Technologies :
Pandas / Scikit-Learn

Le projet

Ce projet a été réalisé dans le cadre de ma formation diplômante en data science.

L’idée de ce projet était de nous mettre face à un fort volume de données : celui de l’application OpenFoodFacts qui comporte plus de 2 millions de produits dans plusieurs pays, et pour chaque produit jusqu’à 190 données différentes : valeurs nutritionnelles, noms et mots-clés, ingrédients, date de sortie, etc… 

Je devais alors trouver une idée d’application « au service de la santé publique » qui, dans mon cas, était la suivante : à partir d’un produit donné (par exemple scanné via une application de scan de codes barres), proposer des produits similaires mais de meilleure qualité nutritionnelle (moins de sucre ou de gras, nutriscore plus élevé). Je proposais également une nouvelle représentation du nutriscore : au lieu d’une simple lettre (de A à E), utiliser un graphique de type « radar » sur les principales composantes nutritionnelles pour 100g (sucre, gras, sel, calories, protéines et fibres). Un graphique étendu permet alors de comprendre que le produit est de bonne qualité sur tous les aspects, et ses points faibles sont identifiables sans avoir besoin de lire le détail nutritionnel ou la liste des ingrédients.

À partir de cette idée, je devais réaliser une analyse exploratoire du dataset pour estimer la faisabilité de mon application.

 

Le déroulé

L’analyse exploratoire a été réalisée de la manière suivante :

  • Vérification du taux de remplissage des données qui nous intéressent (nutriscore, données nutritionnelles, catégories de produits, label bio…),
  • Suppression des produits aux valeurs erronées ou manquantes,
  • Vérification que le nombre de produits restants est suffisant pour notre application,
  • Imputation de valeurs manquantes, notamment les données nutritionnelles à partir des autres produits.

Les technologies

Comme pour la majorité des analyses exploratoires en data science, j’ai travaillé sur des notebook Jupyter, et utilisé principalement les librairies Pandas, Matplotlib, et Pyplot. J’ai également utiliser la librairie Scikit-learn pour l’imputation par KNN et Scipy pour les tests statistiques (ANOVA).

Les difficultés

La grande difficulté de ce projet était la taille du dataset, qui nécessitait de longs temps de traitement sur un ordinateur classique, et la mauvaise qualité des données nécessitait d’apprendre à utiliser de l’imputation de données, de type KNN-imputer, en s’appuyant sur les autres données disponible (par exemple : imputer le taux de sucre d’une sauce tomate, en se basant sur les autres sauces tomates du dataset).