Spaces:
Sleeping
Sleeping
🤖 Modèle de Machine Learning - Project5
Ce dossier contient le modèle de Machine Learning pour la prédiction de consommation énergétique des bâtiments.
📁 Structure des fichiers
model/
├── model.py # Script de génération du modèle
├── model.pkl # Modèle RandomForest sérialisé (26MB)
├── model_info.json # Métadonnées et métriques du modèle
├── generate_model_report.py # Générateur de rapport HTML
├── Makefile # Automatisation des tâches
├── backup/ # Sauvegardes des modèles
└── README.md # Cette documentation
🎯 Modèle actuel
Informations générales
- Type : RandomForestRegressor
- Version : 1.0
- Créé le : 2025-09-21T11:07:42
- Taille : 26.0 MB
- Variables : 17 features
Métriques de performance
{
"accuracy": 0.916,
"RMSE": 0.09,
"MAE": 0.22,
"R²": 0.92
}
Variables d'entrée (17 features)
year_built
number_of_buildings
number_of_floors
property_gfa_total
property_gfa_parking
second_largest_property_use_type_gfa
third_largest_property_use_type_gfa
multiusage
steam
electricity
natural_gas
neighborhood_id
building_type_id
largest_property_use_type_id
primary_property_type_id
second_largest_property_use_type_id
third_largest_property_use_type_id
🚀 Utilisation rapide
Génération du modèle
# Installation et génération complète
make setup
# Génération simple
make train
# Force la régénération
make retrain
Validation et tests
# Valider l'intégrité du modèle
make validate
# Tester le chargement
make test
# Tester une prédiction
make test-prediction
Rapport et informations
# Générer un rapport HTML complet
make report
# Informations rapides
make info
# Taille des fichiers
make model-size
📊 Commandes disponibles
Génération du modèle
make model/make train- Génère le modèle via model.pymake retrain- Force la régénération (supprime + recrée)make setup- Workflow complet (dépendances + DB + génération)
Validation et tests
make validate- Vérifie l'existence et l'intégrité des fichiersmake test- Test de chargement et validation du modèlemake test-prediction- Test d'une prédiction avec données aléatoires
Gestion et maintenance
make info- Affiche les informations détaillées (JSON)make model-size- Affiche la taille des fichiersmake backup- Sauvegarde avec timestampmake restore- Restaure la dernière sauvegardemake list-backups- Liste toutes les sauvegardesmake clean/make clean-all- Nettoyage
Environnement
make check-deps- Vérifie les dépendances Pythonmake check-db- Teste la connexion à la base de données
🔧 Configuration technique
Prérequis
# Dépendances principales
import sklearn
import pandas
import numpy
import joblib
Variables d'environnement
DATABASE_URL=postgresql://user:password@localhost/dbname
Source des données
Le modèle est entraîné sur la vue model_view de la base de données PostgreSQL qui agrège :
- Données Seattle (2016_Building_Energy_Benchmarking.csv)
- Données OSE (building_consumption_OSEBuildingID.csv)
🛠️ Développement
Regeneration du modèle
- Modifier les hyperparamètres dans
model.py - Exécuter
make train - Valider avec
make test - Générer le rapport avec
make report
Sauvegarde et versioning
# Sauvegarde manuelle
make backup
# Lister les versions
make list-backups
# Restaurer une version précédente
make restore
Structure du modèle
# Configuration RandomForest
RandomForestRegressor(
n_estimators=500,
max_features=0.5,
random_state=42,
min_samples_split=5,
max_depth=20
)
📊 Pipeline de données
- Source : Vue
model_view(PostgreSQL) - Transformation : Log de la variable cible
site_energy_use_wn_kbtu - Split : 80/20 train/test (random_state=42)
- Validation : Cross-validation 5-fold
- Métriques : RMSE, MAE, R², Accuracy
🔗 Intégration API
Le modèle est automatiquement chargé par l'API FastAPI au démarrage :
# Dans main.py
from project5.ml.model import MLModel
model = MLModel()
model.load_model() # Charge model.pkl
📞 Support
Pour toute question ou problème :
- Vérifier l'intégrité :
make validate - Tester le modèle :
make test - Générer un rapport :
make report - Consulter les logs : Vérifier les sorties des commandes make
🏢 Project5 - API de gestion énergétique des bâtiments