Bienvenue dans le Dashboard Analytics des Ventes pour les magasins Rossmann. Ce projet vise à fournir une application interactive pour la gestion des stocks et la prévision des ventes, répondant aux besoins des acteurs du secteur Sage X3. L'application combine un tableau de bord interactif avec un modèle prédictif robuste pour anticiper les ventes futures.
- À propos
- Fonctionnalités
- Installation
- Usage
- Entraînement des Modèles
- Structure du Projet
- Résultats et Benchmarking
- Contribution
- Licence
- Contact
Le Dashboard Analytics des Ventes est une application Streamlit conçue pour permettre une visualisation interactive des données de ventes et de stocks des magasins Rossmann. En outre, l'application intègre plusieurs modèles de prévision des ventes pour anticiper les performances futures, facilitant ainsi la prise de décision stratégique.
- Vue d'ensemble : Statistiques clés telles que les ventes totales, les ventes moyennes, le nombre total de clients, etc.
- Ventes au Fil du Temps : Visualisation des ventes quotidiennes et mensuelles.
- Analyse par Type et Assortiment : Ventes par type de magasin et par niveau d'assortiment.
- Impact des Promotions et Jours Fériés : Analyse des ventes avec et sans promotions, ainsi que pendant les jours fériés.
- Distance à la Compétition : Distribution de la distance entre les magasins Rossmann et leurs concurrents.
- Analyse des Clients : Nombre de clients quotidiens et par magasin.
- Corrélations : Matrice de corrélation entre les différentes variables.
- Aperçu des Données : Visualisation des premières lignes des données filtrées.
- Prévisions par Magasin : Génération de prévisions de ventes pour un magasin sélectionné sur une période donnée.
- Prévisions Globales : Génération de prévisions de ventes agrégées pour l'ensemble des magasins sur une période donnée.
- Indicateurs Clés : Affichage des ventes totales prévisionnelles, des ventes moyennes quotidiennes et des ventes moyennes par magasin.
- Visualisation des Prévisions : Graphiques interactifs (courbes ou histogrammes) des prévisions de ventes.
- Téléchargement des Prévisions : Option pour télécharger les prévisions au format CSV.
- Régression Linéaire
- Forêt Aléatoire (Random Forest)
- XGBoost
- ARIMA/SARIMA
- Lissage Exponentiel (Holt-Winters)
- Prophet
- Tableau comparatif des performances des modèles avec des métriques telles que MAE, RMSE et MAPE.
- Sélection du meilleur modèle basé sur les performances évaluées.
- Python 3.8+
- Git
-
Cloner le Répertoire
git clone https://github.com/AbrahamKOLOBOE/Rossmann-Sales-Dashboard.git cd Rossmann-Sales-Dashboard -
Créer un Environnement Virtuel
python -m venv venv source venv/bin/activate # Sur Windows : venv\Scripts\activate
-
Installer les Dépendances
pip install -r requirements.txt
-
Télécharger les Données
Assurez-vous d'avoir les fichiers suivants dans le répertoire
data/:train.csv: Données historiques de ventes.store.csv: Informations complémentaires sur les magasins.
Avant de lancer le dashboard, vous devez entraîner les modèles de prévision. Vous pouvez le faire via le notebook Jupyter :
cd notebooks
jupyter notebook Train-models.ipynbCe notebook :
- Prétraite les données.
- Entraîne plusieurs modèles de prévision.
- Enregistre les modèles entraînés et les artefacts (graphiques, métriques).
Une fois les modèles entraînés, lancez l'application Streamlit :
streamlit run Dashboard.pyVous pouvez accéder aux prévisions de ventes via la page séparée de prédiction :
streamlit run pages/01_🔮_Prévision_des_ventes.pyL'application est divisée en plusieurs onglets pour une meilleure organisation :
- 📋 Vue d'ensemble : Statistiques clés.
- 📅 Ventes au Fil du Temps : Visualisation des ventes quotidiennes et mensuelles.
- 🏪 Analyse par Type & Assortiment : Analyse des ventes par type de magasin et assortiment.
- 🎁 Promotions & Jours Fériés : Impact des promotions et jours fériés sur les ventes.
- 📍 Distance à la Compétition : Analyse de la distance des magasins à leurs concurrents.
- 👥 Analyse des Clients : Analyse du nombre de clients.
- 📊 Corrélations : Matrice de corrélation des variables.
- 📄 Aperçu des Données : Visualisation des données filtrées.
- 🔮 Prévisions des Ventes : Prévisions pour un magasin spécifique.
- 🌐 Prévisions Globales : Prévisions agrégées pour tous les magasins.
Le notebook notebooks/Train-models.ipynb effectue les tâches suivantes :
- Chargement et prétraitement des données.
- Entraînement de plusieurs modèles de prévision.
- Évaluation des modèles et enregistrement des artefacts.
- Sélection du meilleur modèle basé sur les métriques d'évaluation.
Les artefacts générés comprennent :
- Modèles Enregistrés : Stockés dans le dossier
models/. - Graphes et Logs : Stockés dans le dossier
artefacts/. - Tableau Comparatif des Modèles :
artefacts/model_comparison.csv.
Rossmann-Sales-Dashboard/
│
├── artefacts/
│ ├── Linear_Regression_predictions.png
│ ├── model_comparison.csv
│ ├── model_performance.txt
│ ├── Random_Forest_predictions.png
│ └── XGBoost_predictions.png
│
├── data/
│ ├── store.csv
│ └── train.csv
│
├── models/
│ ├── holt_winters_model_store_1.joblib
│ ├── linear_regression_pipeline.joblib
│ ├── prophet_model_store_1.joblib
│ ├── random_forest_pipeline.joblib
│ ├── sarima_model_store_1.joblib
│ └── xgboost_pipeline.joblib
│
├── notebooks/
│ └── Train-models.ipynb
│
├── pages/
│ └── 01_🔮_Prévision_des_ventes.py
│
├── .gitignore
├── Dashboard.py
├── Readme.md
└── requirements.txt
- artefacts/ : Contient les graphiques de performances des modèles, les logs, et le tableau comparatif.
- data/ : Contient les fichiers de données nécessaires.
- models/ : Stocke les modèles entraînés et les pipelines de prétraitement.
- notebooks/ : Contient les notebooks Jupyter pour l'entraînement des modèles.
- pages/ : Contient les pages supplémentaires pour Streamlit (prédictions).
- Dashboard.py : Script principal pour le tableau de bord Streamlit.
- requirements.txt : Liste des dépendances Python.
- Readme.md : Documentation du projet.
Après l'entraînement, un tableau comparatif des performances des modèles est généré dans artefacts/model_comparison.csv. Ce tableau inclut les métriques suivantes :
| Modèle | MAE | RMSE | MAPE |
|---|---|---|---|
| Régression Linéaire | 1234.56 | 2345.67 | 12.34% |
| Forêt Aléatoire | 987.65 | 1987.65 | 9.87% |
| XGBoost | 876.54 | 1876.54 |
8.76% | | SARIMA (Magasin 1) | 1500.00| 2500.00| 15.00% | | Holt-Winters (Magasin 1)| 1400.00| 2400.00| 14.00% | | Prophet (Magasin 1) | 1300.00| 2300.00| 13.00% |
Les valeurs sont indicatives et dépendent des données d'entraînement réelles.
Le benchmarking a été réalisé en comparant les métriques MAE, RMSE et MAPE pour chaque modèle. Le modèle avec les valeurs les plus basses pour ces métriques est considéré comme le meilleur modèle. Dans cet exemple, XGBoost présente les meilleures performances et est donc sélectionné pour les prévisions intégrées dans le dashboard.
Les contributions sont les bienvenues ! Si vous souhaitez améliorer ce projet, veuillez suivre les étapes suivantes :
- Fork le dépôt.
- Créer une branche pour votre fonctionnalité ou correction de bug.
- Commiter vos changements avec des messages clairs.
- Pousser votre branche vers votre fork.
- Créer une Pull Request décrivant vos changements.
Ce projet est sous licence MIT.
Pour toute question ou suggestion, veuillez contacter :
Merci d'utiliser le Dashboard Analytics des Ventes - Rossmann Stores ! Nous espérons que cette application vous sera utile pour optimiser la gestion de vos stocks et améliorer vos prévisions de ventes.