OpenClassRooms Project
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
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.
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
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.
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
Datasource
Part 4
OpenClassRooms Project
Data Processing
Laying the Foundation: Data Processing
Data Processing
Selection of Relevant Variables
Dataframe
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
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
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
Datasource OpenFoodFact
1
Data cleansing notebook
Notebook de nettoyage des données
Dataframe Cleaned Data
2
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.
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.
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.
Multivariate Analysis
Represents the correlations between the principal components and the original variables resulting from the PCA analysis.
Multivariate Analysis
Represents the correlations between the principal components and the original variables resulting from the PCA analysis.
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 ?
Antoine Fusilier
06 09 98 96 84
antoinefusilier@gmail.com
For student project 3 in Data Engineer cursus on OpenClassrooms