This repository contains the core implementations and datasets used in our paper:
"Budget-constrained Collaborative Renewable Energy Forecasting Market"
Carla Gonçalves, Ricardo J. Bessa, Tiago Teixeira, João Vinagre
Published in IEEE Transactions on Sustainable Energy, 2025
This project presents a budget-constrained collaborative forecasting market, where data owners can monetize their features, and buyers can optimize forecasting performance while staying within a budget.
This project implements a collaborative forecasting market that allows data sellers to monetize their data while data buyers purchase relevant features under a given budget constraint. It uses Spline LASSO regression to improve the accuracy of renewable energy forecasting (e.g., wind or solar).
- Collaborative forecasting model: Spline LASSO regression
- Bid-based data market where:
- Data sellers set prices for their features.
- Data buyers specify a budget or price related to forecast accuracy improvements.
- Incentive Mechanism: Estimates the more accurate LASSO B-spline model within the budget
We primarily target wind power forecasting, though the underlying models can be adapted to other use cases (solar, load forecasting, etc.) if you have suitable time series data.
🔗 Read the full paper: ArXiv or IEEE
The codes provided are organized as follows:
├── data/ # Datasets used in experiments
├── src/ # Main implementation files
│ ├── proposal.py # Algorithmic solution
│ └── custom_pipeline.py # Feature selection filters
├── examples/
│ ├── 1-a-generate-basic-synthetic-data.py # Basic synthetic setup
│ ├── 1-b-run-markets-basic-synthetic-data.py # Run the proposal
│ ├── 2-advanced-synthetic-run-data-markets.py # Advanced synthetic setup
│ ├── 3-a-gefcom2014-create-data-folders.py # Wind power setup (GEFCom 2014)
│ ├── 3-b-gefcom2014-compare-models.py
│ ├── 3-b-gefcom2014-draw-plots.py
│ └── 3-c-gefcom2014-run-data-market.py
├── LICENSE # License file
├── requirements.txt # Dependencies
└── README.md # This file
- Synthetic Datasets: Example synthetic data is stored in the
data/
folder, generated via scripts in theexamples/
directory. - Real-world Datasets: We provide scripts to process the GEFCom2014 wind power dataset. You need to manually download the original GEFCom2014 (link here).
git clone https://github.com/INESCTEC/budget-constrained-collaborative-forecasting-market.git
cd budget-constrained-collaborative-forecasting-market
pip install -r requirements.txt
Dependencies include:
numpy
pandas
scikit-learn
scikit-optimize
scipy
sympy
plotnine
The results can be obtained by running the scripts in the 'examples' folder, e.g.:
python examples/1-a-generate-basic-synthetic-data.py
A folder results/
will be created to save a .csv with Table I results.
python examples/1-b-run-markets-basic-synthetic-data.py
This project is licensed under the AGPL v3 license - see the LICENSE file for details.
**Disclaimer: ** This code contains parts adapted from the original implementation provided in Yu, G., Fu, H., & Liu, Y. (2022). High-dimensional cost-constrained regression via nonconvex optimization. Technometrics, 64(1), 52-64. which was published and released as open-source by the authors. This version contains modifications, improvements, and deviations from the original code.
If you use this code, please cite our work:
@article{goncalves2025budget,
title={Budget-constrained Collaborative Renewable Energy Forecasting Market},
author={Gon{\c{c}}alves, Carla and Bessa, Ricardo J and Teixeira, Tiago and Vinagre, Jo{\~a}o},
journal={IEEE Transactions on Sustainable Energy},
year={2025},
publisher={IEEE}
}
For questions or collaborations, feel free to reach out:
- Carla Gonçalves - carla.s.goncalves@inesctec.pt
- Ricardo J. Bessa - ricardo.j.bessa@inesctec.pt