prévision de courbes de charge - stéphane gaïffas

10
Prévision de courbes de charge Stéphane Gaiffas et Karine Tribouley

Upload: others

Post on 21-Nov-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Prévision de courbes de charge

Stéphane GaiffasetKarine Tribouley

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 ?

Questions ?