mlrMBO v1.1.5


Monthly downloads



Bayesian Optimization and Model-Based Optimization of Expensive Black-Box Functions

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.



Package website:

Model-based optimization with mlr.

tic CRAN\_Status\_Badge Coverage
Status Monthly RStudio CRAN


We recommend to install the official release version:


For experimental use you can install the latest development version:



mlrMBO is a highly configurable R toolbox for model-based / Bayesian optimization of black-box functions.


  • EGO-type algorithms (Kriging with expected improvement) on purely numerical search spaces, see Jones et al. (1998)
  • Mixed search spaces with numerical, integer, categorical and subordinate parameters
  • Arbitrary parameter transformation allowing to optimize on, e.g., logscale
  • Optimization of noisy objective functions
  • Multi-Criteria optimization with approximated Pareto fronts
  • Parallelization through multi-point batch proposals
  • Parallelization on many parallel back-ends and clusters through batchtools and parallelMap

For the surrogate, mlrMBO allows any regression learner from mlr, including:

  • Kriging aka. Gaussian processes (i.e. DiceKriging)
  • random Forests (i.e. randomForest)
  • and many more…

Various infill criteria (aka. acquisition functions) are available:

  • Expected improvement (EI)
  • Upper/Lower confidence bound (LCB, aka. statistical lower or upper bound)
  • Augmented expected improvement (AEI)
  • Expected quantile improvement (EQI)
  • API for custom infill criteria

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.

How to Cite

Please cite our arxiv paper (Preprint). You can get citation info via citation("mlrMBO") or copy the following BibTex entry:

  title = {{{mlrMBO}}: {{A Modular Framework}} for {{Model}}-{{Based Optimization}} of {{Expensive Black}}-{{Box Functions}}},
  url = {},
  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:

Functions in mlrMBO

Name Description
error_handling Error handling for mlrMBO
exampleRunMultiObj Perform an MBO run on a multi-objective test function and and visualize what happens.
mbo_parallel Parallelization in mlrMBO
exampleRun Perform an mbo run on a test function and and visualize what happens.
mlrMBO_examples mlrMBO examples
updateSMBO Updates SMBO with the new observations
trafos Transformation methods.
getSupportedMultipointInfillOptFunctions Get names of supported multi-point infill-criteria optimizers.
getSupportedInfillOptFunctions Get names of supported infill-criteria optimizers.
finalizeSMBO Finalizes the SMBO Optimization
MBOSingleObjResult Single-Objective result object.
makeMBOLearner Generate default learner.
OptProblem OptProblem object.
makeMBOTrafoFunction Create a transformation function for MBOExampleRun.
makeMBOControl Set MBO options.
mbo Optimizes a function with sequential model based optimization.
mboContinue Continues an mbo run from a save-file.
proposePoints Propose candidates for the objective function
mboFinalize Finalizes an mbo run from a save-file.
renderExampleRunPlot Renders plots for exampleRun objects, either in 1D or 2D, or exampleRunMultiObj objects.
OptState OptState object.
getGlobalOpt Helper function which returns the (estimated) global optimum.
OptResult OptResult object.
initCrit Initialize an MBO infill criterion.
plot.OptState Generate ggplot2 Object
infillcrits Infill criteria.
mbo_OptPath OptPath in mlrMBO
plotExampleRun Renders plots for exampleRun objects and displays them.
setMBOControlInfill Extends mbo control object with infill criteria and infill optimizer options.
setMBOControlMultiObj Set multi-objective options.
plotMBOResult MBO Result Plotting
print.MBOControl Print mbo control object.
getMBOInfillCrit Get properties of MBO infill criterion.
setMBOControlTermination Set termination options.
setMBOControlMultiPoint Set multipoint proposal options.
makeMBOInfillCrit Create an infill criterion.
MBOMultiObjResult Multi-Objective result object.
initSMBO Initialize a manual sequential MBO run.
No Results!

Vignettes of mlrMBO

No Results!

Last month downloads


License BSD_2_clause + file LICENSE
LazyData yes
Encoding UTF-8
ByteCompile yes
RoxygenNote 7.1.1
VignetteBuilder knitr
NeedsCompilation yes
Packaged 2020-10-23 14:59:27 UTC; jakob
Repository CRAN
Date/Publication 2020-10-23 15:40:03 UTC

Include our badge in your README