Avec l'essor des énergies renouvelables, prévoir la demande d'énergie est crucial pour optimiser la production et la distribution. Ce projet vise à prédire la consommation d'électricité à partir de données réelles, en utilisant des techniques de machine learning et deep learning.
- Source : City Hall Electricity Usage – Boston
- Description :
- Consommation électrique mesurée toutes les 15 minutes à la mairie de Boston (2016-2020)
- Variable cible :
Total_Demand_KW - Variables explicatives créées : heure, jour de la semaine, mois, saison, week-end, lags temporels
- Collecte et exploration des données
- Prétraitement :
- Nettoyage (valeurs nulles, doublons, interpolation)
- Feature engineering (variables temporelles, lags)
- Normalisation/standardisation
- Split train/validation/test (70/15/15)
- Modélisation :
- Baseline : Régression linéaire, ARIMA
- Machine Learning : RandomForest, XGBoost, LightGBM
- Deep Learning : LSTM
- Évaluation :
- Métriques : RMSE, MAE, MAPE
- Visualisations : courbes de prédiction, distribution des erreurs, importance des variables
- Optimisation :
- Tuning d'hyperparamètres (GridSearchCV sur LightGBM)
- Amélioration des features
- Interface web :
- Application Streamlit complète
- Visualisations interactives
- Prédiction personnalisée
- Fonctionnalités bonus (Prophet, PCA)
| Modèle | RMSE | MAE | MAPE (%) |
|---|---|---|---|
| Régression linéaire | 26.54 | 13.82 | 1.29 |
| RandomForest | 33.65 | 16.88 | 1.71 |
| XGBoost | 138.99 | 69.95 | 8.49 |
| LightGBM (défaut) | 34.90 | 19.35 | 2.08 |
| LightGBM (optimisé) | 31.61 | 16.68 | - |
| LSTM | 40.73 | 23.34 | - |
- La régression linéaire reste la plus performante sur ce jeu de données.
- RandomForest et LightGBM donnent de bons résultats.
- XGBoost sous-performe (à optimiser).
- LSTM fonctionne mais n'apporte pas de gain ici.
streamlit run app.py- Accueil/Présentation : Vue d'ensemble du projet
- Visualisation des données : Exploration interactive des données d'entraînement
- Comparaison des modèles : Tableau comparatif des performances
- Importance des variables : Analyse des features les plus importantes
- Prédiction personnalisée : Interface pour faire des prédictions avec le modèle LightGBM optimisé
- Téléchargement des résultats : Export des visualisations et résultats
- Bonus - Analyse avancée :
- Prophet : Prévision de séries temporelles avec saisonnalités
- PCA : Réduction de dimension et visualisation des patterns cachés
compare_models.png: Comparaison des prédictions de chaque modèlezoom_predictions.png: Zoom sur les 500 premières prédictionserror_distribution.png: Distribution des erreursfeature_importance_rf.png: Importance des variables (RandomForest)
- Modèle développé par Facebook pour les séries temporelles
- Gestion automatique des saisonnalités et jours fériés
- Interface pour choisir l'horizon de prévision
- Visualisation des composantes (tendance, saisonnalité)
- Analyse en Composantes Principales
- Visualisation des deux premières composantes
- Analyse de la variance expliquée
- Détection de patterns cachés dans les données
- Valeurs nulles et doublons : Interpolation linéaire et agrégation par timestamp
- Données bruitées : Ajout de lags et de variables temporelles pour capter les patterns
- Modèles deep learning : Moins performants que les modèles classiques sur ce jeu de données
- Interface web : Intégration fluide de toutes les fonctionnalités dans Streamlit
- Ajouter des données météo (température, vent, ensoleillement) pour enrichir les variables explicatives
- Tester des modèles avancés (Transformers pour séries temporelles)
- Déploiement cloud de l'application web
- Ajout de fonctionnalités de monitoring en temps réel
- Intégration de nouveaux datasets pour validation croisée
devbook.md: Suivi détaillé du projet étape par étapepreprocessing.py: Pipeline de préparation des donnéesmodel_baseline.py: Baseline (régression linéaire, ARIMA)model_ml.py: Modèles ML (RandomForest, XGBoost, LightGBM)model_lstm.py: Modèle LSTMcompare_models.py: Comparaison des modèleseval_visualisation.py: Évaluation détaillée et visualisationsoptimisation.py: Tuning d'hyperparamètresapp.py: Application web Streamlitlgbm_optimise.pkl: Modèle LightGBM optimisé sauvegardé
pip install pandas numpy scikit-learn matplotlib seaborn lightgbm xgboost tensorflow streamlit prophet- Cloner le repository
- Installer les dépendances
- Lancer l'application web :
streamlit run app.py - Ouvrir le navigateur sur l'URL indiquée
Abderrahman AJINOU – Université Paris Cité
N° Étudiant : 22116322 – abderrahman.ajinou@etu.u-paris.fr
- Maîtrise des concepts d'informatique (POO, interfaces graphiques)
- Efficacité des algorithmes et complexité
- Préparation aux masters IA et Cybersécurité
- Ambition : CAIO ou CTO