/turbo

Bayesian optimisation for global black box function optimisation

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

turbo

turbo is a modular Bayesian optimisation framework which focuses on gathering and storing the intermediate optimisation steps to give insight into the decision making process. turbo is capable of producing a wide variety of plots and supports many variations of the basic Bayesian optimisation algorithm.

Algorithm Features

  • Acquisition Functions
    • Probability of Improvement (PI)
    • Expected Improvement (EI)
    • Upper/Lower Confidence Bound (UCB/LCB)
  • Pre-Phase 'naive' selectors
    • Random
    • Latin Hypercube Sampling (LHS)
    • Manual
  • Surrogate Models
    • Scikit-Learn Gaussian Process
    • GPy Gaussian Process
  • Latent Space
    • Fixed warping (e.g. log-transformed or linear map to [0,1] etc)
  • Fallback
    • Scheduled random samples ("Harmless" Bayesian Optimisation)
    • de-duplication
  • Misc
    • able to use the same storage and plotting functionality with random search or any of the available 'naive' samplers

Dependencies

all dependencies can be installed with pip, see requirements.txt

Links

Some other Bayesian optimisation libraries