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:
initializeinitializes the parameters of the model.update_parametersrecursively updates the parameters of the model.update_modelupdates the model each time new samples arrive.predictionobtains the multi-task probabilistic forecasts in terms of multivariate Gaussian distributions.testevaluates the forecasts in terms of RMSE and MAPE.adapt_covariancesimplifies 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.