Skip to content

Using an integrated pinball-loss objective function in various recurrent based deep learning architectures made with keras to simultaneously produce probabilistic forecasts for UK wind, solar, demand and price forecasts.

Notifications You must be signed in to change notification settings

RichardFindlay/day-ahead-probablistic-forecasting-with-quantile-regression

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Probabilistic Forecasting of Renewable Energy Generation and Wholesale Market Prices Using Quantile Regression in Keras

🚀 Blog post on personal website 🔗 Probabilistic Forecasting of Renewable Generation & Wholesale Prices with Quantile-Regression

screenshot of interactive d3.js plots illustrating probabilistic forecasting performance

Project Description 📖:

This repository demonstrates the use of deep learning techniques in combination with quantile regression to produce probabilistic forecasts. The above figure depicts the consecutive DA quantile forecasts for each of the investigated variables over one week, with further quantification and discussion given on the forecast performance given in the accompanying blog post.

The code investigates the performance of four different deep-learning architectures; Bi-directional LSTM, Seq-2-Seq, Seq-2-Seq with Temporal Attention and Seq-2-Seq with Temporal and Spatial Attention. To help give context, comparisons are made to a simplistic daily persistence forecasting technique, as well as to the Transmission System Operator's forecast (TSO). The models are predicated off the notion that there is an increased complexity added at each iteration, which accompanied the hypothesis that an increased performance should be observed between each iteration, which was not the case when test performance was investigated.

model architecture schematic for encoder-decoder with spatial and temporal attention mechanisms as implemented in keras

Performance Overview 🏎️:

The above figure illustrates the pinnacle of the model complexity investigated as part of this project. With both temporal and spatial attention mechanisms, the novel encoder-decoder architecture does not always prevail as the best preforming technique but shows encourging performance and may merit further investigation and fine-tuning.

The above plot illustrates the performance of the temporal attention mechanism for the prior 7-days of features inputted into the model, the attention weights show there's a recognition of temporal patterns within the data, paying particular attention to the previous day for the proceeding forecast. Similarly, the below gif depicts the performance of the spatial attention weights in the solar generation forecast, again this shows some promising indication of the mechanism recognising the influence of solar irradiance to the forecast.

Quantative performance breakdown of all investigated deep learning architectures, given below, alongside TSO and persistence forecasting performances.

Notes on Code 📓:

Install python dependencies for repository:

$ pip install -r requirements.txt

🏋️ Training for all models was conducted on a Google Colab Pro+ subscription.

Further Work 🔭:

  • Insightfulness of study could be broadened by analysing additional ML architectures alongside the variations of RNNs examined here, particularly XGBoost and transformers.
  • Problem pushes limitations of high-level DL frameworks, adopting Pytorch or Tensorflow could allow for increased efficiency and performance.

To Do 🧪:

  • Code links and references to be validated since re-organisation.
  • Clean code, especially interactive d3 plots.
  • Further validate environments and optimisation scripts.

Resources 💎:

About

Using an integrated pinball-loss objective function in various recurrent based deep learning architectures made with keras to simultaneously produce probabilistic forecasts for UK wind, solar, demand and price forecasts.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages