This repository contains scripts featured in: .
Please cite this work as:
@article{thebelt2022leafgp,
title={{Tree ensemble kernels for Bayesian optimization with known constraints over mixed-feature spaces}},
author={Thebelt, Alexander and Tsay, Calvin and Lee, Robert M and Sudermann-Merx, Nathan and Walz, David and Shafei, Behrang and Misener, Ruth},
eprint={2207.00879},
archivePrefix={arXiv},
year={2022}
}
We use virtualenv
to setup a virtual environment.
You can install this package by running:
python3 -m pip install virtualenv
To set up a new virtual environment called 'env' with Python 3.7 for which this code was tested, run the command:
python3 -m virtualenv env --python=python3.7
in the folder where you want to store the virtual environment. Afterwards, activate the environment using
source env/bin/activate
It is recommended that you update the pip installation in the virtual environment:
pip install --upgrade pip
Install all required packages by running the command:
pip install -r requirements.txt
Please visit the Gurobi website to receive an academic license and download the solver. To install the optimization modelling environment run:
python -m pip install -i https://pypi.gurobi.com gurobipy
As stated in the paper we evaluate black-box functions: hartmann6d
, rastrigin
, styblinski_tang
, schwefel
,
g1
, g3
, g4
, g6
, g7
, g10
, alkylation
, pressure_vessel
and vae_nas
.
To test LEAF-GP
with the hartmann6d
benchmark function run:
python run_study.py -bb-func hartmann6d
You can also modify the call by using optional arguments:
-num-init
: number of initial data points-num-itr
: number of optimization iterations-rnd-seed
: random seed to evaluate-solver-type
: pick eitherglobal
orsampling
, referring toLEAF-GP
andLEAF-GP-RND
, respectively-has-larger-model
: picking this one uses a larger tree ensemble model forLEAF-GP
used for thevae_nas
benchmark