The code companion to the paper "Model-based Causal Bayesian Optimization".
The starting point for the code in this repository was https://github.com/RaulAstudillo06/BOFN.
We build on BOTorch (https://botorch.org/).
In a new conda environment with Python 3.9 run
conda install botorch -c pytorch -c gpytorch -c conda-forge
Then in the base directory of this repository:
pip install -e .
On your system you now have a conda environment called "mcbo". This should be loaded whenever you run experiments.
You can launch experiments by running scripts/runner.py and controlling the command line inputs.
All experimental results are logged to the Weights and Bias service.
MCBO is the algorithm studied in the Model-based Causal Bayesian Optimization paper.
The algorithm in this repo named MCBO is designed for just near-noiseless environments
(like Function Networks). The algorithm named NMCBO implements MCBO for noisy
environments.
mcbo provides the core functionality of model-based causal bayesian optimization.
In this folder,
mcbo_trial.py implements the environment interaction loop.
models/gp_network.py contains the class for fitting GPs for EIFN and MCBO
models/eta_network.py contains the training loop for the custom optimizer used for
optimizing the acquisition function in NMCBO. All other methods use default BOTorch
optimizers.
scripts provides the key functionality for running experiments.