Target

OpenClassRooms Project

Data Structure

Project 3 - Upgrade Open ​Food Fact Database

By: Antoine Fusilier | 2024

Welcome Message

Hi, I’m Antoine Fusilier, an apprentice at Société Générale and a ​student at OpenClassrooms, specializing in Data Engineering and ​AI Engineering. With a background as a CDA (Application ​Developer and Designer), I’m expanding my skills into AI.


This presentation is about my third project, focusing on the Open ​Food Facts database. My task involved data cleaning and ​identifying improvements to enhance the database’s accuracy and ​efficiency, crucial for developing an auto-completion system to aid ​data entry. This project allowed me to apply data engineering ​techniques in a real-world scenario, showcasing the importance of ​data quality and the potential of AI in solving complex problems.


Thank you for having me; I’m eager to share the insights gained ​from this work.



Antoine Fusilier

Data Engineer Apprentice

Table Of Content

01

02

03

04

Introduction

The Challenge

Data Source

Data Processing

Workplace Reading and Researching Illustration

Data Visualization

Quantitative Analysis

Multivariate Analysis

Conclusions

06

07

08

09

05

Process Architecture

Questions

10

Part 1

OpenClassRooms Project

Introduction

Our mission

Introduction

EN

As part of the project with Public Health France, we undertook the analysis ​of the Open Food Facts dataset. Our main mission was to clean and explore ​this data to assess the feasibility of an application dedicated to public ​health. Compliance with GDPR was a top priority throughout the project.

FR

Dans le cadre du projet avec Santé publique France, nous avons entrepris ​l'analyse du jeu de données Open Food Facts. Notre mission principale était ​de nettoyer et d'explorer ces données pour évaluer la faisabilité d'une ​application dédiée à la santé publique. Le respect du RGPD était une priorité ​absolue tout au long du projet.

Workplace Analyzing Data Illustration

Part 2

OpenClassRooms Project

The Challenge

Understanding the Core Issue

EN

FR

Solving these data quality issues is crucial for ensuring the Open Food Facts database remains a trusted and valuable nutritional ​resource. By tackling the challenges of data entry errors and missing values, we can significantly enhance the database's reliability ​and utility for all users.la base de données pour tous les utilisateurs.

Résoudre ces problèmes de qualité des données est crucial pour garantir que la base de données Open Food Facts reste une ​ressource nutritionnelle fiable et précieuse. En abordant les défis liés aux erreurs de saisie des données et aux valeurs manquantes, ​nous pouvons améliorer considérablement la fiabilité et l'utilité de la base de données pour tous les utilisateurs.

The Challenge

Challenges Icon

1

EN

Clean the Open Food Facts dataset, focusing on variables with more than 50% ​missing values.

FR

Nettoyer le jeu de données Open Food Facts, en se concentrant sur les variables avec ​plus de 50% de valeurs manquantes.

2

EN

Explore data to understand trends, anomalies and relationships between different ​variables.

FR

Explorer les données pour comprendre les tendances, les anomalies et les relations ​entre différentes variables.

3

EN

Clean the Open Food Facts dataset, focusing on variables with more than 50% ​missing values.

FR

Évaluer la faisabilité de prédire les valeurs manquantes et l'application de ces ​prédictions à une application de santé publique.

The Challenge

Introduction to the Problem

EN

The Open Food Facts database, an invaluable resource for nutritional information, is plagued by data entry errors and missing values. These issues compromise the ​integrity and reliability of the database, making it less effective as a tool for individuals and organizations seeking to make informed dietary choices.

FR

La base de données Open Food Facts, une ressource inestimable pour les informations nutritionnelles, est en proie à des erreurs de saisie de données et à des valeurs ​manquantes. Ces problèmes compromettent l'intégrité et la fiabilité de la base de données, la rendant moins efficace comme outil pour les individus et les ​organisations cherchant à faire des choix alimentaires éclairés.

Disappointed emoji. Sad face, unhappy emoticon
Brushstroke Arrow Smooth Curve Down
Man in Great Despair
Brushstroke Arrow Smooth Curve Down
Precious
Brushstroke Arrow Smooth Curve Down
Circle Outline Icon
3D Error Data
Brushstroke Arrow Smooth Curve Down
Brushstroke Arrow Smooth Curve Down
Fake news realistic newspaper
Issue Icon

Part 3

OpenClassRooms Project

Data Source

A Treasure Trove of ​Nutritional Data

EN

FR

Solving these data quality issues is crucial for ensuring the Open Food Facts database remains a trusted and valuable nutritional ​resource. By tackling the challenges of data entry errors and missing values, we can significantly enhance the database's reliability ​and utility for all users.la base de données pour tous les utilisateurs.

Résoudre ces problèmes de qualité des données est crucial pour garantir que la base de données Open Food Facts reste une ​ressource nutritionnelle fiable et précieuse. En abordant les défis liés aux erreurs de saisie des données et aux valeurs manquantes, ​nous pouvons améliorer considérablement la fiabilité et l'utilité de la base de données pour tous les utilisateurs.

Datasource

Linked Data Icon
xml xml document xml file xml format line icon
csv file
Mongodb Logo
JSON File Document Icon in Trendy Style Isolated Background

Datasource

Part 4

OpenClassRooms Project

Data Processing

Laying the Foundation: Data ​Processing

Data Processing

Selection of Relevant Variables

Da​taframe

General Informations

Tags

Ingredients

Divers

Nutrition Facts

code

countries_fr

product_name

brands

additives_n

energy_100g

saturated-fat_100g

fat_100g

carbohydrates_100g

sugars_100g

salt_100g

proteins_100g

fiber_100g

sodium_100g

Data Processing

Data Cleaning Methods

Suppression des colonnes avec plus de 50% de valeurs null

Promoção EANI

Nutrition Facts

additives_n

energy_100g

saturated-fat_100g

fat_100g

carbohydrates_100g

sugars_100g

salt_100g

proteins_100g

fiber_100g

sodium_100g

Data Processing

Data Cleaning Methods

Removing null rows for key columns

Suppression des lignes nulles pour des colonnes clés

id = null ? Impossible

.dropna(subset=['product_name', 'code'])

Removing duplicates based on unique IDs

Suppression des doublons basés sur des identifiants uniques

WTF

id = id ? Impossible

.drop_duplicates(subset='code')

Data Processing

Data Cleaning Methods

Handling outliers

Traitement des valeurs aberrantes

Detection and treatment of outliers

Détection et traitement des outliers

Nutritionals values (end with _100g)

% =< 100

Data Processing

Data Cleaning Methods

Normalization of digital data

Normalisation des données numériques

Normalization of text data

Normalisation des données textuelles

0 < X <1

farine de blé blé

farine de blé

Data Processing

Data Cleaning Methods

Validation of product codes

Validation des codes produits

X == 13

EAN13

type == entiger

Data Processing

Imputation of Missing Values

Imputation by median

Imputation by mean

Imputation by KNN

Part 5

OpenClassRooms Project

Process Architecture

Architecting for Efficiency: ​Our Process Architecture

Process Architecture

Overview of Process Architecture

Lined Isometric Files
csv file

Datasource OpenFoodFact

google drive
Brushstroke Arrow Rapid Curved Long

1

Copy File Icon

Data cleansing notebook

Notebook de nettoyage des ​données

csv file

Dataframe Cleaned Data

google drive
Brushstroke Arrow Rapid Curved Long
Brushstroke Arrow Rapid Curved Long

2

Copy File Icon

Data analysis and ​visualization notebook

Notebook d'analyse et ​visualisation des données

Part 6

OpenClassRooms Project

Data Visualization

Illuminating Insights: The ​Power of Data Visualization

Data Visualization

The Role of Visualization


code

product_name

brands

countries_fr

additives_n

energy_100g

fat_100g

saturated-​fat_100g

carbohydrates​_100g

sugars_100g

fiber_100g

proteins_100g

salt_100g

sodium_100g

0

3087

farine de blé noir

ferme t'y ​r'nao

True

0.032258

0.709942

0.119999

0.045499

0.266693

0.091999

0.029999

0.066699

0.007805

0.00308

1

4530

banana chips sweetened (whole)

NaN

False

0.000000

0.709942

0.285699

0.285699

0.642896

0.142899

0.035999

0.035699

0.007805

0.00308

2

4559

peanuts

torn & glasser

False

0.000000

0.709942

0.178599

0.045499

0.607096

0.178599

0.070999

0.178599

0.006354

0.00250

3

16087

organic salted nut mix

grizzlies

False

0.000000

0.709942

0.571400

0.053599

0.178592

0.035699

0.070999

0.178599

0.012251

0.00482

4

16094

organic polenta

bob's red mill

False

0.000000

0.709942

0.014299

0.045499

0.771398

0.091999

0.056999

0.085699

0.007805

0.00308

Data Visualization

Impact of Visualization on the Project

Part 7

OpenClassRooms Project

Quantitative Analysis

Unraveling Data Mysteries: ​Quantitative Insights

Quantitative Analysis

Descriptive Statistics


code

additives_n

energy_100g

fat_100g

saturated-fat_100g

carbohydrates_100g

sugars_100g

fiber_100g

proteins_100g

salt_100g

sodium_100g

count

2.871330e+05

287133.000000

287133.000000

287133.000000

287133.000000

287133.000000

287133.000000

287133.000000

287133.000000

287133.000000

287133.000000

mean

2.152102e+12

0.057421

0.707217

0.151612

0.060175

0.330400

0.158437

0.035867

0.082189

0.015456

0.006284

std

2.573330e+12

0.074405

0.053218

0.143448

0.063621

0.248382

0.185923

0.034297

0.068458

0.056515

0.024234

min

3.087000e+03

0.000000

0.000000

0.000000

0.000000

0.000000

0.000000

0.000000

0.000000

0.000000

0.000000

25%

7.089303e+10

0.000000

0.709942

0.089999

0.039999

0.132491

0.046699

0.029999

0.047599

0.003508

0.001380

50%

8.126030e+11

0.032258

0.709942

0.119999

0.045499

0.266693

0.091999

0.029999

0.066699

0.007805

0.003080

75%

3.456777e+12

0.064516

0.709942

0.157899

0.049999

0.513195

0.168099

0.029999

0.087999

0.011896

0.004690

max

9.980283e+12

1.000000

1.000000

1.000000

1.000000

1.000000

1.000000

1.000000

1.000000

0.999758

1.000000

Quantitative Analysis

Descriptive Statistics

Quantitative Analysis

Distribution Analysis

Quantitative Analysis

Distribution Analysis

Quantitative Analysis

Distribution Analysis

Quantitative Analysis

Distribution Analysis

Quantitative Analysis

Distribution Analysis

Quantitative Analysis

Distribution Analysis

Quantitative Analysis

Distribution Analysis

Quantitative Analysis

Distribution Analysis

Quantitative Analysis

Distribution Analysis

Quantitative Analysis

Nutritional Hypothesis 1 : The composition of the products may vary depending on their brand.

Distributions can ​reveal trends, such as ​a high concentration ​of products with low ​fat or sugar contents.


Outliers visible in the ​boxplots could ​indicate data errors ​or exceptional ​products.

Les distributions peuvent ​révéler des tendances, ​comme une concentration ​élevée de produits avec de ​faibles teneurs en graisses ​ou en sucre. Les outliers ​visibles dans les boîtes à ​moustaches pourraient ​indiquer des erreurs de ​données ou des produits ​exceptionnels.

Green accepted stamp

Quantitative Analysis

Hypothesis based on Additives 1 Would products with a lot of additives also represent a high sugar and fat content?

These visualizations do not convincingly support the hypothesis ​that a high amount of additives in food products corresponds to ​higher levels of sugar and fat. It is possible that other factors ​influence the nutritional composition of products, or that ​additives are used independently of sugar and fat contents.

Ces visualisations ne supportent pas de manière convaincante l'hypothèse selon ​laquelle une quantité élevée d'additifs dans les produits alimentaires correspond à ​des niveaux plus élevés de sucre et de graisse. Il est possible que d'autres facteurs ​influencent la composition nutritionnelle des produits, ou que les additifs soient ​utilisés de manière indépendante des teneurs en sucre et en graisse.

Rejected stamp

Quantitative Analysis

Distribution visualization...

Quantitative Analysis

HeatMap of correlation

Quantitative Analysis

Distribution visualization...

Notable Positive Correlations: There appears to be a notable positive correlation between the fat_100g and saturated-​fat_100g variables, which makes sense since saturated fat is a subtype of total fat. Another significant positive correlation ​is observed between salt_100g and sodium_100g, which is also expected because sodium is a component of table salt.


Weak or Negative Correlations: The majority of other variables do not show a strong correlation, suggesting that the ​presence of one nutrient does not necessarily predict the presence of another in food products. This may indicate ​diversity in the nutritional composition of products.

Corrélations Positives Notables : Il semble y avoir une corrélation positive notable entre les variables fat_100g et saturated-fat_100g, ce ​qui est logique puisque les graisses saturées sont un sous-type de graisses totales. Une autre corrélation positive importante est observée ​entre salt_100g et sodium_100g, ce qui est également attendu car le sodium est un composant du sel de table.


Corrélations Faibles ou Négatives : La majorité des autres variables ne montre pas de corrélation forte, ce qui suggère que la présence ​d'un nutriment ne prévoit pas nécessairement la présence d'un autre dans les produits alimentaires. Cela peut indiquer une diversité dans ​la composition nutritionnelle des produits.

Part 8

OpenClassRooms Project

Multivariate Analysis

Beyond the Basics: ​Multivariate Analysis Insights

Multivariate Analysis

PCA (Principal Component Analysis)

Interpretation: Strong ​correlations between ​certain nutrients can ​reveal key nutritional ​relationships, which is ​essential for ​understanding dietary ​profiles.

Interprétation: Des ​corrélations fortes ​entre certains ​nutriments peuvent ​révéler des relations ​nutritionnelles clés, ce ​qui est essentiel pour ​comprendre les profils ​alimentaires.

Multivariate Analysis

Represents the correlations between the principal components and the original variables resulting from the PCA analysis.

  • Additifs (additives_n) : Ils sont fortement corrélés avec le ​PC5, ce qui suggère que cette composante principale ​pourrait capturer des variations dans les données liées au ​nombre d'additifs.
  • Énergie (energy_100g) : Montre une forte corrélation ​négative avec le PC4, ce qui pourrait signifier que cette ​composante est liée à des facteurs qui affectent ​négativement l'énergie.
  • Matières grasses (fat_100g) et Graisses saturées (saturated-​fat_100g) : Présentent une corrélation positive avec le PC3, ​indiquant que cette composante principale pourrait être ​associée à des facteurs liés à la teneur en matières grasses ​des produits.
  • Fibres (fiber_100g) : Affiche une corrélation positive ​significative avec le PC1, ce qui indique que le PC1 pourrait ​être influencé par la teneur en fibres.
  • Sel (salt_100g) et Sodium (sodium_100g) : Ces deux sont ​très fortement corrélés avec le PC2, ce qui laisse supposer ​que le PC2 est fortement influencé par la teneur en ​sel/sodium des produits.
  • Sucres (sugars_100g) : Ont une corrélation positive avec le ​PC7, indiquant une possible association de cette ​composante avec le contenu en sucre.
  • Protéines (proteins_100g) : Présentent une corrélation ​négative avec le PC8, ce qui pourrait impliquer que cette ​composante principale représente des aspects des données ​qui sont inversément liés à la teneur en protéines.


Multivariate Analysis

Represents the correlations between the principal components and the original variables resulting from the PCA analysis.

  • Variables numbered 1 to 9 all have a strong positive correlation with energy_100g, ​as shown by the intense red color. This suggests that these variables may be factors ​influencing or being influenced by the energy content of foods.
  • Variable number 4 shows a strong positive correlation with saturated-fat_100g, ​which could indicate that this variable is particularly linked to saturated fat in food ​products.
  • There is also a notable positive correlation between variables 2, 3, and 5 with ​fat_100g, suggesting a link between these variables and total fat content.
  • The correlation between additives_n and all numbered variables is low, as indicated ​by the near-green colors in the heatmap. This could mean that the number of ​additives is not strongly influenced by, or does not strongly influence, the other ​numerical variables listed.
  • The correlations between carbohydrates_100g, sugars_100g, fiber_100g, ​proteins_100g, salt_100g, and sodium_100g and the numbered variables are ​generally low to moderate, with a few exceptions, such as the moderate correlations ​of variable 7 with fat_100g and saturated-fat_100g.

Multivariate Analysis

Represents the correlations between the principal components and the original variables resulting from the PCA analysis.

  • Les variables numérotées de 1 à 9 ont toutes une forte corrélation positive avec ​energy_100g, comme le montre la couleur rouge intense. Cela suggère que ces ​variables peuvent être des facteurs influençant ou étant influencés par la teneur ​énergétique des aliments.
  • La variable numéro 4 montre une forte corrélation positive avec saturated-​fat_100g, ce qui pourrait indiquer que cette variable est particulièrement liée aux ​matières grasses saturées dans les produits alimentaires.
  • Il existe également une corrélation positive notable entre les variables 2, 3, et 5 avec ​fat_100g, ce qui suggère un lien entre ces variables et la teneur totale en matières ​grasses.
  • La corrélation entre additives_n et toutes les variables numérotées est faible, ​comme indiqué par les couleurs proches du vert sur la carte thermique. Cela ​pourrait signifier que le nombre d'additifs n'est pas fortement influencé par, ou ​n'influence pas fortement, les autres variables numériques listées.
  • Les corrélations entre carbohydrates_100g, sugars_100g, fiber_100g, ​protein_100g, salt_100g, et sodium_100g et les variables numérotées sont ​généralement faibles à modérées, avec quelques exceptions, telles que les ​corrélations modérées de la variable 7 avec fat_100g et saturated-fat_100g.


Multivariate Analysis

Correlation circles

A projection close to the circle indicates that the variable is ​well represented on the F1/F2 plane. For example, if ​'fat_100g' is close to the circle on the F1 axis, this means ​that F1 captures the variance related to fat content well. ​The angles between the variables indicate their correlation. ​For example, if 'sugars_100g' and 'fat_100g' are close ​together, this suggests that they are positively correlated.

Une projection proche du cercle indique que la variable est ​bien représentée sur le plan F1/F2. Par exemple, si 'fat_100g' ​est proche du cercle sur l'axe F1, cela signifie que F1 capture ​bien la variance liée à la teneur en matières grasses. Les angles ​entre les variables indiquent leur corrélation. Par exemple, si ​'sugars_100g' et 'fat_100g' sont proches, cela suggère qu'ils ​sont positivement corrélés.

Multivariate Analysis

Correlation circles

A projection close to the circle indicates that the variable is ​well represented on the F1/F2 plane. For example, if ​'fat_100g' is close to the circle on the F1 axis, this means ​that F1 captures the variance related to fat content well. ​The angles between the variables indicate their correlation. ​For example, if 'sugars_100g' and 'fat_100g' are close ​together, this suggests that they are positively correlated.

Une projection proche du cercle indique que la variable est ​bien représentée sur le plan F1/F2. Par exemple, si 'fat_100g' ​est proche du cercle sur l'axe F1, cela signifie que F1 capture ​bien la variance liée à la teneur en matières grasses. Les angles ​entre les variables indiquent leur corrélation. Par exemple, si ​'sugars_100g' et 'fat_100g' sont proches, cela suggère qu'ils ​sont positivement corrélés.

Multivariate Analysis

Biplot

The biplot combines a scatter plot of the ​principal component scores with the vectors of ​the PCA loadings, providing an overview of the ​relationships between variables and ​observations.

Le biplot combine un scatter plot des scores ​des composantes principales avec les vecteurs ​des chargements PCA, offrant une vue ​d'ensemble des relations entre variables et ​observations.

Multivariate Analysis

Biplot 3d

Multivariate Analysis

Biplot 3d

Part 9

OpenClassRooms Project

Assessing Feasibility

Feasibility Conclusion: Envisioning ​the Auto-Completion System

Assessing Feasibility

Synthesis of Analyses Performed

The analysis conducted within the provided notebook indicates a significant correlation between additives and nutrient ​content in the Open Food Facts database. This finding underscores the potential nutritional impact of additives and ​suggests that their presence in food items should be carefully considered in dietary assessments and food processing.


Moreover, the current state of the Open Food Facts database appears to have room for improvement, particularly ​regarding the handling of missing values. Implementing an automated system for replacing missing values would ​significantly enhance the quality and reliability of the data. Such automation would not only keep the dataset clean but ​also prevent the compounding of errors, facilitating more accurate and efficient data analysis for researchers and end-​users alike.

L'analyse effectuée dans le cahier fourni indique une corrélation significative entre les additifs et la teneur en nutriments dans la ​base de données Open Food Facts. Cette découverte souligne l’impact nutritionnel potentiel des additifs et suggère que leur ​présence dans les produits alimentaires devrait être soigneusement prise en compte dans les évaluations diététiques et la ​transformation des aliments.


Par ailleurs, l’état actuel de la base de données Open Food Facts semble pouvoir être amélioré, notamment en ce qui concerne le ​traitement des valeurs manquantes. La mise en œuvre d'un système automatisé de remplacement des valeurs manquantes ​améliorerait considérablement la qualité et la fiabilité des données. Une telle automatisation permettrait non seulement de maintenir ​l'ensemble de données propre, mais empêcherait également la multiplication des erreurs, facilitant ainsi une analyse des données ​plus précise et plus efficace pour les chercheurs et les utilisateurs finaux.

Part 10

OpenClassRooms Project

Engage and Discuss

Your Thoughts and Questions

Engage and Discuss

Your Thoughts and Questions

What are your thoughts on the feasibility of the auto-completion system?

Que pensez-vous de la faisabilité du système d’auto-complétion ?

Do you have any suggestions for improving data quality in Open Food Facts?

Avez-vous des suggestions pour améliorer la qualité des données dans Open Food Facts ?

How do you think the improvements could impact user experience and data accuracy?

Quel impact pensez-vous que les améliorations pourraient avoir sur l’expérience utilisateur et l’exactitude des données ?

contact icon

Antoine Fusilier

Contacts Icon

06 09 98 96 84

Contact Icon

antoinefusilier@gmail.com

For student project 3 in Data Engineer cursus on OpenClassrooms