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.
Readme
mlrMBO
Package website: mlrmbo.mlr-org.com
Model-based optimization with mlr.
Installation
We recommend to install the official release version:
install.packages("mlrMBO")
For experimental use you can install the latest development version:
remotes::install_github("mlr-org/mlrMBO")
Introduction
mlrMBO
is a highly configurable R toolbox for model-based / Bayesian
optimization of black-box functions.
Features:
- 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:
@article{mlrMBO,
title = {{{mlrMBO}}: {{A Modular Framework}} for {{Model}}-{{Based Optimization}} of {{Expensive Black}}-{{Box Functions}}},
url = {https://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:
- Multi-point proposals, including the new multi-objective infill criteria: MOI-MBO: Multiobjective Infill for Parallel Model-Based Optimization
- Multi-objective optimization: Model-Based Multi-objective Optimization: Taxonomy, Multi-Point Proposal, Toolbox and Benchmark
- Multi-objective optimization with categorical variables using the random forest as a surrogate: Multi-objective parameter configuration of machine learning algorithms using model-based optimization
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
Last month downloads
Details
License | BSD_2_clause + file LICENSE |
URL | https://github.com/mlr-org/mlrMBO |
BugReports | https://github.com/mlr-org/mlrMBO/issues |
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 |
suggests | akima , cmaesr (>= 1.0.3) , covr , DiceKriging , earth , emoa , GGally , ggplot2 , gridExtra , kernlab , kknn , knitr , mco , nnet , party , randomForest , reshape2 , rgenoud , rmarkdown , rpart , testthat |
imports | backports (>= 1.1.0) , BBmisc (>= 1.11) , checkmate (>= 1.8.2) , data.table , lhs , parallelMap (>= 1.3) |
depends | mlr (>= 2.10) , ParamHelpers (>= 1.10) , smoof (>= 1.5.1) |
Contributors | Daniel Horn, Michel Lang, Bernd Bischl, Jakob Bossek, Janek Thomas |
Include our badge in your README
[](http://www.rdocumentation.org/packages/mlrMBO)