MultiLGBM: A simple multi-objective regression example to show how to trade-off objectives on the Pareto front with a single LGBM model.
This repository presents a multi-objective regression example with

For each labeled point (
where
For further information, we refer to MultiTRON, where this technique has been successfully applied to industry-scale sequential recommender systems with a transformer neural network as backbone.
- Clone the repository:
git clone https://github.com/timowilm1992/MultiLGBM
- Install the dependencies:
pip install pipenv
pipenv install --dev
- Prepare a dataset (e.g., "sinus_linear"):
pipenv run python -m src.sinus_linear.generate_data --number-train-examples 50000 --number-test-examples 1000 --plot True
- Run the main script with a configuration file:
pipenv run python -m src.main --dataset-name sinus_linear --config-name sinus_linear/default_config --plot True
.
├── Pipfile
├── Pipfile.lock
├── README.md
├── configs # Contains experiment configuration files
└── src # Source code
The config folder contains a JSON configuration file. These configurations detail the parameters and options.
Here's an explanation of each parameter in the config file:
-
dirichlet_param
: The dirichlet parameter to specify the dirichlet distribution for sampling,default
is [0.5, 0.5] -
repeat
: how often should a dirichlet weight be sampled for each data point, equivalent to the number of epochs for deep neural networks -
regularization
: The penalty$\lambda$ of the non-uniformity regularization term to improve pareto front coverage,default
is 0.0 -
lgbm_params
: The Parameters of the underlying LightGBM model, theobjective
parameter is "sinus_and_linear_mse"
{
"dirichlet_param": [0.5, 0.5],
"repeat": 10,
"regularization": 0.0,
"lgbm_params": {
"random_seed": 0,
"objective": "sinus_linear_loss",
"max_depth": 5,
"num_leaves":10
}
}
Contributions to MultiLGBM are welcome and appreciated. For issues or suggestions for improvements, please open an issue or create a pull request.
If MultiLGBM helped you with your project or your research, please consider citing:
@misc{wilm_multilgbm_2025,
title = {{MultiLGBM}: {A} simple multi-objective regression example to show how to trade-off objectives on the {Pareto} front with a single {LGBM} model},
url = {https://github.com/timowilm1992/MultiLGBM},
author = {Wilm, Timo},
month = mar,
year = {2025},
}
This project is MIT licensed.
For any queries or questions, please reach out to us via our LinkedIn profiles:
For specific issues related to the codebase or for feature requests, please create a new issue on our GitHub page.
If this project aids your research or you find it interesting, we would appreciate it if you could star ⭐ the repository. Thanks for your support!