Code for Li, Z. & Kannan, A. "Algorithm Switching for Multiobjective Predictions in Renewable Energy Markets." Learning and Intelligent Optimization (LION 2024), Springer, pp. 233–248, 2025.
A hybrid model-selection method that starts with Bayesian optimization (Kriging surrogate) and switches to direct search (MADS) to tune ML models against several objectives at once: prediction error, bias (MBE / DPD) and model complexity.
| Script | Model | Objectives |
|---|---|---|
demo_1_ResNet.py |
PyTorch ResNet (ResNet_model.py) |
regression: MSE, MBE, weight density · classification: error, weight density, DPD |
demo_2_XGBoost.py |
XGBoost | same objectives, complexity measured by tree depth |
demo_3_KNN.py |
k-nearest neighbours | same objectives |
Each demo compares weighted BO, weighted MADS and the joint (switching) method, and reports
the hypervolume of the resulting Pareto front. Objective functions are in Metrics.py.
The ResNet demo uses CUDA by default and takes about 5 hours.
Python 3 with numpy, pandas, scikit-learn, PyTorch, torchmetrics, XGBoost, SMT, PyNomad and pygmo.
The demos read data/Berlin_wind_multiclass.csv (or data/Stuttgart_solar_regression.csv).
The Berlin / Stuttgart solar and wind datasets used in the paper are not included in this repository.