Flexible and comprehensive R toolbox for model-based optimization ('MBO'), also known as Bayesian optimization. It implements the Efficient Global Optimization Algorithm and is designed for both single- and multi- objective optimization with mixed continuous, categorical and conditional parameters. The machine learning toolbox 'mlr' provide dozens of regression learners to model the performance of the target algorithm with respect to the parameter settings. It provides many different infill criteria to guide the search process. Additional features include multi-point batch proposal, parallel execution as well as visualization and sophisticated logging mechanisms, which is especially useful for teaching and understanding of algorithm behavior. 'mlrMBO' is implemented in a modular fashion, such that single components can be easily replaced or adapted by the user for specific use cases.
Model-based optimization with mlr.
We reccomend to install the official release version:
install.packages("mlrMBO")
For experimental use you can install the latest development version:
devtools::install_github("mlr-org/mlrMBO")
mlrMBO
is a highly configurable R toolbox for model-based / Bayesian optimization of black-box functions.
Features:
For the surrogate, mlrMBO
allows any regression learner from mlr
, including:
DiceKriging
)randomForest
)Various infill criteria (aka. acquisition functions) are available:
Objective functions are created with package smoof, which also offers many test functions for example runs or benchmarks.
Parameter spaces and initial designs are created with package ParamHelpers.
Please cite our arxiv paper (Preprint).
You can get citation info via citation("mlrMBO")
or copy the following BibTex entry:
@article{mlrMBO, title = {{{mlrMBO}}: {{A Modular Framework}} for {{Model}}-{{Based Optimization}} of {{Expensive Black}}-{{Box Functions}}}, url = {http://arxiv.org/abs/1703.03373}, shorttitle = {{{mlrMBO}}}, archivePrefix = {arXiv}, eprinttype = {arxiv}, eprint = {1703.03373}, primaryClass = {stat}, author = {Bischl, Bernd and Richter, Jakob and Bossek, Jakob and Horn, Daniel and Thomas, Janek and Lang, Michel}, date = {2017-03-09},}
Some parts of the package were created as part of other publications. If you use these parts, please cite the relevant work appropriately:
progress
argument. Termination criterions now can supply a progress
return value.save.on.disk
now can take arbitrary numeric vectors to specify iterations, when to save on disk.makeMBOControl()
has on.surrogate.error
argument which enables random proposals if the surrogate model fails.initSMBO()
, updateSMBO()
and finalizeSMBO()
it is now possible to do a human-in-the-loop MBO.final.opt.state
.OptState
objects.citation("mlrMBO")
.