This repository is the official implementation of the code developed in the paper "Adaptive Multi-task Learning for Probabilistic Load Forecasting".
The proposed method is a multi-task learning method for online and probabilistic load forecasting. The method can dynamically adapt to changes in consumption patterns and correlations among multiple entities. The techniques presented provide accurate probabilistic predictions for loads of multiples entities and asses load uncertainties.
- main.py is the main file. In such file we can modify the values of hyper-parameters such as
- model.py is the file that contains the functions to train and evaluate the model:
initialize
initializes the parameters of the model.update_parameters
recursively updates the parameters of the model.update_model
updates the model each time new samples arrive.prediction
obtains the multi-task probabilistic forecasts in terms of multivariate Gaussian distributions.test
evaluates the forecasts in terms of RMSE and MAPE.adapt_covariance
simplifies the covariance matrix setting low values to zero to avoid spurious correlations.
git clone https://github.com/onintzezaballa/Multitask-Load-Forecasting
To train and evaluate the model in the paper, run this command:
python main.py
We use 4 publicly available datasets containing multiple entities
We save the data in .mat files with hourly load time series, temperature time series, and calendar-related information, such as the hour of day or day of the week.
We display in this repository an example of the dataset GEFCom2017 with 8 entities.
Onintze Zaballa
MIT license.