prévision de courbes de charge - stéphane gaïffas
TRANSCRIPT
Agenda
• Prédiction bimodale
Scorer : données structurées standard
Classer : données textuelles
• Prédiction continue
Prévision : série temporelle
Scorer – Classer
Brief : challenger la régression logistique – L1 pénalisée – par du machine learning
Modélisation : Reprendre l’atelier Day 1 avec
Reprendre les données day_1_score (pour UC score) et test/train_NLP (pour UC classification)
Modèle de régression logistique L1 pénalisé
Forêts aléatoires : nombres d’arbres / taille du sous échantillonnage des p variables
GBM : nombre d’itérations / complexité (profondeur ou nombre de feuilles) / vitesse d’apprentissage / taille des sous échantillonnages observations et variables
Benchmark
sqrt(p)(ou CV ??)
T = 200, K=3 ou NK = 5 , Lambda = 0.05, pi et pi = 70%
(ou CV ??)
GBM les plus utilisés
LigthGBM :Croît en hauteur
XGBoost :Croît en largeur
objective = 'regression',num_leaves = 21,learning_rate = 0.05,feature_fraction = 0.8,bagging_fraction = 1,n_estimators = 100
objective : ‘reg:linear’, n_estimators : 500, colsample_bytree : 0.3,learning_rate : 0.01,max_depth : 10
Pro : Rapide, utilise peu de mémoireCon : Risque de sur-apprentissage si peud’observations À utiliser sur grands jeux de data
(>10 000 obs)
https://xgboost.readthedocs.io/en/latest/build.html import xgboost as xgbhttps://pypi.org/project/lightgbm/ import lightgbm as lgb
pip install xgboostpip install lightgbm
Agenda
• Prédiction bimodale
Scorer : données structurées standard
Classer : données textuelles
• Prédiction continue
Prévision : série temporelle
Brief challenge.
Objectif : Prévoir la courbe de charge – consommation électrique -
Périmètre :
43 entreprises de 4 codes NAF distinctsFichier : « Description_sites.csv »
Historique « Courbe de charge » variant selon le site entre le 01/01/2011 et le 15/12/2012 1 observation toutes les 10 minutes
Fichier : « Courbes_Charge.csv »
Historique « Températures » calé sur chaque site (date et localisation) 1 observation toutes les 3 heures
Fichier : « Temperature-par-site.csv »
01/01/2011
S D L M M J V S D L M M J V S
Hotel Commerce
Courbes de Charges sur les 2 premières semaines de janvier 2011
Horizon : de (Jder+2) à (Jder+4) temps de réaction et rester fiable
Brief simplifié. Description Data Un unique site ID08 – hôtel
Le fichier de données contientColonne 1 : les datesColonne 2 : la consommation électriqueColonne 3 : la température – remplissage par interpolation linéaire
S
D
L M M J V SD
L M M J V S
Historique pour apprentissage Horizon
Aujourd’hui
FuturPassé
Gap 1 j Horizon 3 j
Exploiter la périodicité des signaux ?Patterns spécifiques : dépendance temporelle des observations
Tenir compte de la dynamique des signaux Tenir compte de l’horizon demandé Tenir compte du gap imposé
Cadrage
Décisions à prendre : Exploiter la périodicité des signaux ?
Patterns spécifiques : dépendance temporelle des observations
Modélisation ?Inputs ? Outputs ? Liens ?
Mesure des performances ?
Décisions prises : Utiliser une modélisation « théorie du signal »séquencer les données X (charge de l’entreprise choisie) et T (températures interpolées) en signaux « période »
C1, T1= charge, température pour la période 1 C2, T2 = charge, température pour la période 2 …
Modélisation Expliquer Ck – charge période k – avec le passé Ck-1, …Ck-p, Tk-1, …Tk-p Avec GBM, RF + régression linéaire
Mesure des performances:MAP = moyenne|1-Signal prev/Signal vrai|MSE = moyenne(Signal prev - Signal vrai)^2
Signal X
X1
Xm
X2m
xn
Xkm
Base travail
X1
Xm
Xm+1
X2m
X(k-1)m+1
Xkm
C1C2Ck
p = profondeur de l’historique
m = période= semaine
Exemple : • Séquençage du signal en 1008 points (6*24*7 = 1 semaine)• Graphes de C1/C2/C3
Feuille de route
Partie Data
Partie Modélisation
Charger les fichiers « Courbes_Charge.csv » Auditer les données Créer des variables calendaires : type de jour, numéro de jour …. Construire les tables de travail en séquençant le signal
Fixer le numéro k de la période « aujourd’hui » (colonne k)
Apprendre sur le passé (colonnes K+1,K+2…) : 4 modèles (Linéaire / XGBoost / LightGBM / Random Forest)
Réappliquer sur la période suivante (colonne K-1)
Dessiner la charge prévue et la charge observée Calculer les erreurs de prévision (MAP, MSE et corrélation) :
penser à ne les calculer que sur les 3 jours de prédiction
Systématiser à toutes les périodes k possiblesMeilleur modèle ? L’ajout des variables exogènes température améliore-t-il le modèle ?