docs: README bilingue FR/EN

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Grégoire Mureau 2026-09-10 01:48:16 +02:00
parent 2a9ed7d7c2
commit af02b88e34
2 changed files with 230 additions and 82 deletions

146
README.fr.md Normal file
View file

@ -0,0 +1,146 @@
**Source de vérité** : https://git.gregoiremureau.com/openclassroom-ai/oc-p05-customer-segmentation
```bash
git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p05-customer-segmentation.git
git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p05-customer-segmentation.git
```
Dataset : voir `fetch-data.sh` (hors git si volumineux).
# Projet de Segmentation Client - Olist
📘 Ce projet est également disponible en [anglais 🇬🇧](./README.md)
## 📋 Contexte du projet
Ce projet a été réalisé dans le cadre d'une mission de consulting pour **Olist**, une entreprise brésilienne proposant une solution de vente sur les marketplaces en ligne. L'objectif principal est d'accompagner Olist dans la mise en place de leur équipe Data et de réaliser leur premier cas d'usage Data Science autour de la segmentation client.
## 🎯 Objectifs
Le projet se divise en deux missions principales :
1. **Mission SQL** : Développer des requêtes SQL pour alimenter le dashboard Customer Experience de l'équipe
2. **Mission Segmentation** : Créer une segmentation client exploitable pour l'équipe Marketing, basée sur des algorithmes de clustering non-supervisé
## 📊 Données
Les données utilisées proviennent d'une base de données anonymisée fournie par Olist, contenant :
- L'historique des commandes depuis janvier 2017
- Les informations sur les produits achetés
- Les commentaires de satisfaction des clients
- La localisation des clients
- Les données sur les vendeurs
**⚠️ Note importante** : La base de données n'est pas incluse dans ce dépôt en raison de sa taille. Elle est téléchargeable à l'adresse suivante :
- **URL** : https://course.oc-static.com/projects/olist.db
## 📁 Structure du projet
```
├── P5_01_script_052025.sql
├── P5_02_notebook_exploration_052025.ipynb
├── P5_03_notebook_essais_052025.ipynb
├── P5_04_notebook_simulation_052025.ipynb
└── P5_05_presentation_052025.pptx
```
### 1. `P5_01_script_052025.sql`
**Script SQL pour le Dashboard Customer Experience**
Ce fichier contient 4 requêtes SQL essentielles pour alimenter le dashboard du service client :
1. **Commandes en retard** : Identification des commandes récentes (moins de 3 mois) reçues avec au moins 3 jours de retard (hors commandes annulées)
2. **Top vendeurs par chiffre d'affaires** : Liste des vendeurs ayant généré un chiffre d'affaires supérieur à 100 000 Real sur les commandes livrées
3. **Nouveaux vendeurs performants** : Identification des vendeurs récents (moins de 3 mois d'ancienneté) ayant déjà vendu plus de 30 produits
4. **Zones géographiques problématiques** : Les 5 codes postaux avec plus de 30 avis et les pires scores moyens de satisfaction sur les 12 derniers mois
### 2. `P5_02_notebook_exploration_052025.ipynb`
**Notebook d'exploration et de feature engineering**
Ce notebook contient :
- L'analyse exploratoire des données (EDA)
- La création et la transformation des features clients
- L'implémentation de la méthode RFM (Recency, Frequency, Monetary)
- Le preprocessing des données (normalisation, encodage)
- Les premières visualisations et insights sur les comportements clients
### 3. `P5_03_notebook_essais_052025.ipynb`
**Notebook de modélisation et clustering**
Ce notebook présente :
- Les différentes approches de clustering testées (K-means, DBSCAN, etc.)
- L'optimisation du nombre de clusters (méthode du coude, silhouette score)
- L'évaluation des performances des modèles
- La caractérisation détaillée de chaque segment client
- La validation métier des segments identifiés
### 4. `P5_04_notebook_simulation_052025.ipynb`
**Notebook de simulation pour le contrat de maintenance**
Ce notebook analyse :
- La stabilité des clusters dans le temps
- L'évolution de l'Adjusted Rand Index (ARI) sur différentes périodes
- La distribution temporelle des features
- Les recommandations sur la fréquence de mise à jour du modèle de segmentation
- Les tests de Kolmogorov-Smirnov pour détecter les drifts
### 5. `P5_05_presentation_052025.pptx`
**Présentation des résultats**
Cette présentation synthétise :
- La démarche méthodologique adoptée
- Les segments clients identifiés et leurs caractéristiques
- Les insights actionnables pour l'équipe Marketing
- Les recommandations sur le contrat de maintenance
- Les perspectives d'amélioration
## 🛠️ Technologies utilisées
- **SQL** : Requêtage de base de données
- **Python** : Analyse de données et machine learning
- pandas, numpy : manipulation de données
- scikit-learn : algorithmes de clustering
- matplotlib, seaborn : visualisation
- yellowbrick : évaluation des clusters
- **Jupyter Notebook** : développement et documentation
## 📈 Méthodologie
1. **Analyse exploratoire** : Compréhension approfondie des données et des comportements clients
2. **Feature engineering** : Création de variables pertinentes (RFM et autres métriques comportementales)
3. **Modélisation** : Test et sélection d'algorithmes de clustering
4. **Évaluation** : Validation technique (silhouette, ARI) et métier des segments
5. **Simulation** : Analyse de la stabilité temporelle pour définir la fréquence de maintenance
## 📝 Livrables
- ✅ Script SQL avec 4 requêtes pour le dashboard
- ✅ Notebook d'exploration et feature engineering
- ✅ Notebook de modélisation avec différents essais de clustering
- ✅ Notebook de simulation pour le contrat de maintenance
- ✅ Présentation de la segmentation et recommandations
## 🎓 Compétences développées
- Requêtage SQL avancé avec agrégations et jointures
- Apprentissage non-supervisé (clustering)
- Feature engineering orienté métier
- Évaluation de la qualité et de la stabilité des modèles
- Communication des résultats à des équipes métier
## 👤 Auteur
**Grégoire Mureau**
Date de réalisation : Mai 2025
---
*Ce projet a été réalisé dans le cadre du parcours AI Engineer d'OpenClassrooms*

166
README.md
View file

@ -1,38 +1,40 @@
**Source de vérité** : https://git.gregoiremureau.com/openclassroom-ai/oc-p05-customer-segmentation **Source of truth** : https://git.gregoiremureau.com/openclassroom-ai/oc-p05-customer-segmentation
```bash ```bash
git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p05-customer-segmentation.git git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p05-customer-segmentation.git
git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p05-customer-segmentation.git git clone https://git.gregoiremureau.com/openclassroom-ai/oc-p05-customer-segmentation.git
``` ```
Dataset : voir `fetch-data.sh` (hors git si volumineux). Dataset: see `fetch-data.sh` (excluded from git if large).
# Projet de Segmentation Client - Olist # Customer Segmentation Project - Olist
## 📋 Contexte du projet 📘 This project is also available in [French 🇫🇷](./README.fr.md)
Ce projet a été réalisé dans le cadre d'une mission de consulting pour **Olist**, une entreprise brésilienne proposant une solution de vente sur les marketplaces en ligne. L'objectif principal est d'accompagner Olist dans la mise en place de leur équipe Data et de réaliser leur premier cas d'usage Data Science autour de la segmentation client. ## 📋 Project Context
## 🎯 Objectifs This project was carried out as part of a consulting assignment for **Olist**, a Brazilian company offering an online marketplace sales solution. The main objective is to support Olist in setting up their Data team and delivering their first Data Science use case around customer segmentation.
Le projet se divise en deux missions principales : ## 🎯 Objectives
1. **Mission SQL** : Développer des requêtes SQL pour alimenter le dashboard Customer Experience de l'équipe The project is divided into two main missions:
2. **Mission Segmentation** : Créer une segmentation client exploitable pour l'équipe Marketing, basée sur des algorithmes de clustering non-supervisé
## 📊 Données 1. **SQL Mission**: Develop SQL queries to feed the team's Customer Experience dashboard
2. **Segmentation Mission**: Create an actionable customer segmentation for the Marketing team, based on unsupervised clustering algorithms
Les données utilisées proviennent d'une base de données anonymisée fournie par Olist, contenant : ## 📊 Data
- L'historique des commandes depuis janvier 2017
- Les informations sur les produits achetés
- Les commentaires de satisfaction des clients
- La localisation des clients
- Les données sur les vendeurs
**⚠️ Note importante** : La base de données n'est pas incluse dans ce dépôt en raison de sa taille. Elle est téléchargeable à l'adresse suivante : The data used comes from an anonymized database provided by Olist, containing:
- **URL** : https://course.oc-static.com/projects/olist.db - Order history since January 2017
- Information on purchased products
- Customer satisfaction reviews
- Customer location
- Seller data
## 📁 Structure du projet **⚠️ Important note**: The database is not included in this repository due to its size. It can be downloaded at the following address:
- **URL**: https://course.oc-static.com/projects/olist.db
## 📁 Project Structure
``` ```
├── P5_01_script_052025.sql ├── P5_01_script_052025.sql
@ -44,101 +46,101 @@ Les données utilisées proviennent d'une base de données anonymisée fournie p
### 1. `P5_01_script_052025.sql` ### 1. `P5_01_script_052025.sql`
**Script SQL pour le Dashboard Customer Experience** **SQL script for the Customer Experience Dashboard**
Ce fichier contient 4 requêtes SQL essentielles pour alimenter le dashboard du service client : This file contains 4 essential SQL queries to feed the customer service dashboard:
1. **Commandes en retard** : Identification des commandes récentes (moins de 3 mois) reçues avec au moins 3 jours de retard (hors commandes annulées) 1. **Late orders**: Identification of recent orders (less than 3 months) received with at least 3 days of delay (excluding cancelled orders)
2. **Top vendeurs par chiffre d'affaires** : Liste des vendeurs ayant généré un chiffre d'affaires supérieur à 100 000 Real sur les commandes livrées 2. **Top sellers by revenue**: List of sellers who generated revenue above 100,000 Real on delivered orders
3. **Nouveaux vendeurs performants** : Identification des vendeurs récents (moins de 3 mois d'ancienneté) ayant déjà vendu plus de 30 produits 3. **High-performing new sellers**: Identification of recent sellers (less than 3 months of tenure) who have already sold more than 30 products
4. **Zones géographiques problématiques** : Les 5 codes postaux avec plus de 30 avis et les pires scores moyens de satisfaction sur les 12 derniers mois 4. **Problematic geographic areas**: The 5 postal codes with more than 30 reviews and the worst average satisfaction scores over the last 12 months
### 2. `P5_02_notebook_exploration_052025.ipynb` ### 2. `P5_02_notebook_exploration_052025.ipynb`
**Notebook d'exploration et de feature engineering** **Exploration and feature engineering notebook**
Ce notebook contient : This notebook contains:
- L'analyse exploratoire des données (EDA) - Exploratory data analysis (EDA)
- La création et la transformation des features clients - Creation and transformation of customer features
- L'implémentation de la méthode RFM (Recency, Frequency, Monetary) - Implementation of the RFM method (Recency, Frequency, Monetary)
- Le preprocessing des données (normalisation, encodage) - Data preprocessing (normalization, encoding)
- Les premières visualisations et insights sur les comportements clients - Initial visualizations and insights on customer behavior
### 3. `P5_03_notebook_essais_052025.ipynb` ### 3. `P5_03_notebook_essais_052025.ipynb`
**Notebook de modélisation et clustering** **Modeling and clustering notebook**
Ce notebook présente : This notebook presents:
- Les différentes approches de clustering testées (K-means, DBSCAN, etc.) - The different clustering approaches tested (K-means, DBSCAN, etc.)
- L'optimisation du nombre de clusters (méthode du coude, silhouette score) - Optimization of the number of clusters (elbow method, silhouette score)
- L'évaluation des performances des modèles - Evaluation of model performance
- La caractérisation détaillée de chaque segment client - Detailed characterization of each customer segment
- La validation métier des segments identifiés - Business validation of the identified segments
### 4. `P5_04_notebook_simulation_052025.ipynb` ### 4. `P5_04_notebook_simulation_052025.ipynb`
**Notebook de simulation pour le contrat de maintenance** **Simulation notebook for the maintenance contract**
Ce notebook analyse : This notebook analyzes:
- La stabilité des clusters dans le temps - Cluster stability over time
- L'évolution de l'Adjusted Rand Index (ARI) sur différentes périodes - Evolution of the Adjusted Rand Index (ARI) across different periods
- La distribution temporelle des features - Temporal distribution of features
- Les recommandations sur la fréquence de mise à jour du modèle de segmentation - Recommendations on the update frequency of the segmentation model
- Les tests de Kolmogorov-Smirnov pour détecter les drifts - Kolmogorov-Smirnov tests to detect drifts
### 5. `P5_05_presentation_052025.pptx` ### 5. `P5_05_presentation_052025.pptx`
**Présentation des résultats** **Results presentation**
Cette présentation synthétise : This presentation summarizes:
- La démarche méthodologique adoptée - The methodological approach adopted
- Les segments clients identifiés et leurs caractéristiques - The customer segments identified and their characteristics
- Les insights actionnables pour l'équipe Marketing - Actionable insights for the Marketing team
- Les recommandations sur le contrat de maintenance - Recommendations on the maintenance contract
- Les perspectives d'amélioration - Improvement perspectives
## 🛠️ Technologies utilisées ## 🛠️ Technologies Used
- **SQL** : Requêtage de base de données - **SQL**: Database querying
- **Python** : Analyse de données et machine learning - **Python**: Data analysis and machine learning
- pandas, numpy : manipulation de données - pandas, numpy: data manipulation
- scikit-learn : algorithmes de clustering - scikit-learn: clustering algorithms
- matplotlib, seaborn : visualisation - matplotlib, seaborn: visualization
- yellowbrick : évaluation des clusters - yellowbrick: cluster evaluation
- **Jupyter Notebook** : développement et documentation - **Jupyter Notebook**: development and documentation
## 📈 Méthodologie ## 📈 Methodology
1. **Analyse exploratoire** : Compréhension approfondie des données et des comportements clients 1. **Exploratory analysis**: In-depth understanding of the data and customer behavior
2. **Feature engineering** : Création de variables pertinentes (RFM et autres métriques comportementales) 2. **Feature engineering**: Creation of relevant variables (RFM and other behavioral metrics)
3. **Modélisation** : Test et sélection d'algorithmes de clustering 3. **Modeling**: Testing and selection of clustering algorithms
4. **Évaluation** : Validation technique (silhouette, ARI) et métier des segments 4. **Evaluation**: Technical validation (silhouette, ARI) and business validation of segments
5. **Simulation** : Analyse de la stabilité temporelle pour définir la fréquence de maintenance 5. **Simulation**: Temporal stability analysis to define maintenance frequency
## 📝 Livrables ## 📝 Deliverables
- ✅ Script SQL avec 4 requêtes pour le dashboard - ✅ SQL script with 4 queries for the dashboard
- ✅ Notebook d'exploration et feature engineering - ✅ Exploration and feature engineering notebook
- ✅ Notebook de modélisation avec différents essais de clustering - ✅ Modeling notebook with different clustering trials
- ✅ Notebook de simulation pour le contrat de maintenance - ✅ Simulation notebook for the maintenance contract
- ✅ Présentation de la segmentation et recommandations - ✅ Segmentation presentation and recommendations
## 🎓 Compétences développées ## 🎓 Skills Developed
- Requêtage SQL avancé avec agrégations et jointures - Advanced SQL querying with aggregations and joins
- Apprentissage non-supervisé (clustering) - Unsupervised learning (clustering)
- Feature engineering orienté métier - Business-oriented feature engineering
- Évaluation de la qualité et de la stabilité des modèles - Evaluation of model quality and stability
- Communication des résultats à des équipes métier - Communication of results to business teams
## 👤 Auteur ## 👤 Author
**Grégoire Mureau** **Grégoire Mureau**
Date de réalisation : Mai 2025 Completion date: May 2025
--- ---
*Ce projet a été réalisé dans le cadre du parcours AI Engineer d'OpenClassrooms* *This project was carried out as part of OpenClassrooms' AI Engineer program*