- Présentation
- Installation
- Description du Dataset
- Étapes du Notebook (Energy consumption.ipynb)
- Détails de l'Application (app.py)
- Interface Utilisateur
Ce projet propose une solution de prévision de la consommation énergétique à l’aide de modèles de machine learning et peut être testé au travers d'une interface utilisateur en local afin de prédire la consommation annuelle et explorer la sensibilité de la consommation énergétique à la température réglée dans son logement.
La version de python utilisée pour créer ce projet est 3.8.10. Pour que l'application fonctionne correctement, suivez ces étapes pour installer les dépendances :
-
Cloner le dépôt GitHub : Clonez le dépôt sur votre machine locale.
git clone https://github.com/yannamer/MLproject.git cd Energyconsumption -
Installation des dépendances :
pip install -r requirements.txt
-
Lancement de MLflow avant le run de Energy consumption.ipynb, l'adresse sera http://127.0.0.1:5000 :
mlflow ui
Le dataset, issu de Kaggle (https://www.kaggle.com/datasets/mrsimple07/energy-consumption-prediction), est Energy_consumption.csv.
Il contient les données de consommation énergétique avec les colonnes suivantes :
- Timestamp : Horodatage de chaque relevé.
- Temperature : Température du bâtiment.
- Humidity : Taux d'humidité.
- SquareFootage : Surface en pieds carrés.
- Occupancy : Nombre de personnes dans le bâtiment.
- HVACUsage et LightingUsage : Indiquent si les systèmes de chauffage/climatisation et d'éclairage sont en marche.
- RenewableEnergy : Niveau d’énergie renouvelable utilisée.
- DayOfWeek et Holiday : Jour de la semaine et statut jour férié.
- EnergyConsumption : Consommation d'énergie en kWh.
Le notebook Energy consumption.ipynb a pour but de séléctionner le meilleur model avec les meilleurs paramètres pour le futur focrecast.Il suit un processus en plusieurs étapes pour développer le modèle :
- Exploration des données : Analyse des statistiques descriptives et visualisation des distributions pour comprendre le comportement des variables.
- Préparation des données : Nettoyage des données, gestion des valeurs manquantes et transformation des variables catégorielles en indicateurs.
- Sélection et évaluation des modèles : Utilisation de plusieurs modèles de régression (RandomForest, XGBoost et HistGradientBoosting) pour prédire la consommation énergétique.
- Validation croisée et GridSearch : Optimisation des hyperparamètres pour chaque modèle à l’aide de GridSearchCV et stockage des meilleurs modèles dans MLflow.
- Entraînement final : Entraînement du modèle choisi avec les meilleurs paramètres trouvés et sauvegarde pour utilisation dans l’application Flask.
- Metrics : Les metrics seront automatiquement enregistré en format .txt dans le fichier dans lequel se trouve le .ipynb et pertont le nom du model concerné.
Le fichier app.py contient le code Flask qui sert d’API et fournit une interface utilisateur pour entrer les valeurs des paramètres nécessaires à la prévision de la consommation énergétique. Lors du lancement du code app.py, votre terminal vous proposera de vous rendre sur l'adresse http://127.0.0.1:5001 afin d'accéder à l'interface. Les fonctionnalités principales sont :
- Route
/: Accueille l’utilisateur avec un formulaire de saisie pour la prévision de la consommation énergétique. - Route
/forecast: Calcule la consommation énergétique annuelle en fonction des valeurs saisies et retourne les prévisions de consommation pour des températures normales et une température basse constante.
- Page de formulaire : Saisir les paramètres environnementaux (température, humidité, etc.).
- Page de resultat : Recevoir les résultats de prévisions comparatives de la consommation énergétique annuelle et les économies potentielles d'énergie en réduisant la température du chauffage à 0.