Dashboard Streamlit de segmentation clients basé sur l'analyse RFM + K-Means.
projet_segmentation/
│
├── app.py → Dashboard principal (à lancer avec streamlit run app.py)
├── data_loader.py → Chargement et nettoyage du dataset
├── rfm.py → Calcul des scores RFM + normalisation
├── clustering.py → K-Means, méthode du coude, interprétation métier
├── requirements.txt → Dépendances Python
└── data/
└── online_retail.xlsx ← Fichier à télécharger et placer ici
Placez tous les fichiers dans un dossier projet_segmentation/.
python -m venv venv
source venv/bin/activate # Linux / Mac
venv\Scripts\activate # Windowspip install -r requirements.txt- Lien : https://archive.ics.uci.edu/ml/datasets/online+retail
- Téléchargez le fichier Online Retail.xlsx
- Créez un dossier
data/à la racine du projet - Renommez le fichier en
online_retail.xlsxet placez-le dansdata/
streamlit run app.pyLe dashboard s'ouvre automatiquement dans votre navigateur à l'adresse :
http://localhost:8501
| Onglet | Contenu |
|---|---|
| 📊 Indicateurs globaux | KPIs, distributions Recency/Frequency/Monetary, évolution CA |
| 📈 Méthode du coude | Graphiques Inertie + Silhouette pour choisir k |
| 🎯 Segmentation | Scatter 3D + 2D des clusters, camembert de répartition |
| 👥 Profils clients | Tableau des moyennes, descriptions métier, radar chart, export CSV |
- Recency : jours depuis le dernier achat
- Frequency : nombre de commandes distinctes
- Monetary : chiffre d'affaires total par client
- Log-transform (log1p) pour réduire l'effet des outliers
- StandardScaler (mean=0, std=1) pour homogénéiser les échelles
- Méthode du coude (Inertia) pour trouver le k optimal
- Score de silhouette pour valider la qualité du clustering
- Interprétation automatique des segments basée sur les centroïdes
Online Retail Dataset — UCI Machine Learning Repository
https://archive.ics.uci.edu/ml/datasets/online+retail