mlrMBO

Toolbox for Bayesian Optimization and Model-Based Optimization in R

https://github.com/mlr-org/mlrmbo

Science Score: 33.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 7 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, springer.com
  • Committers with academic emails
    8 of 23 committers (34.8%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.9%) to scientific vocabulary

Keywords

bayesian-optimization black-box-optimization hyperparameter-optimization mlr mlrmbo model-based-optimization optimization r r-package

Keywords from Contributors

learners imbalance-correction hyperparameters-optimization feature-selection multilabel-classification predictive-modeling stacking survival-analysis reproducibility parallel-computing
Last synced: 6 months ago · JSON representation

Repository

Toolbox for Bayesian Optimization and Model-Based Optimization in R

Basic Info
Statistics
  • Stars: 188
  • Watchers: 30
  • Forks: 47
  • Open Issues: 95
  • Releases: 1
Topics
bayesian-optimization black-box-optimization hyperparameter-optimization mlr mlrmbo model-based-optimization optimization r r-package
Created over 12 years ago · Last pushed over 2 years ago
Metadata Files
Readme License

README.Rmd

---
output: github_document
---

```{r setup, include=FALSE}
library(knitr)
library(gifski)
opts_knit$set(upload.fun = imgur_upload, base.url = NULL) # upload all images to imgur.com
opts_chunk$set(fig.width=5, fig.height=5, cache=TRUE)
```

# mlrMBO

Package website: [mlrmbo.mlr-org.com](https://mlrmbo.mlr-org.com/)

Model-based optimization with [mlr](https://github.com/mlr-org/mlr/).


[![tic](https://github.com/mlr-org/mlrMBO/workflows/tic/badge.svg?branch=master)](https://github.com/mlr-org/mlrMBO/actions)
[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/mlrMBO)](https://cran.r-project.org/package=mlrMBO)
[![Coverage Status](https://img.shields.io/codecov/c/github/mlr-org/mlrMBO/master.svg)](https://codecov.io/github/mlr-org/mlrMBO?branch=master)
[![Monthly RStudio CRAN Downloads](https://cranlogs.r-pkg.org/badges/mlrMBO)](https://CRAN.R-project.org/package=mlrMBO)


* [Documentation](https://mlrmbo.mlr-org.com/)
* [Issues, Requests and Bug Tracker](https://github.com/mlr-org/mlrMBO/issues)

# Installation

We recommend to install the official release version:

```{r, eval = FALSE}
install.packages("mlrMBO")
```

For experimental use you can install the latest development version:

```{r, eval = FALSE}
remotes::install_github("mlr-org/mlrMBO")
```

# Introduction

```{r animation, message = FALSE, warning = FALSE, echo=FALSE, eval=TRUE, fig.width=7, fig.height=4, animation.hook='gifski'}
set.seed(2)
library(ggplot2)
library(mlrMBO)
library(animation)
configureMlr(show.learner.output = FALSE)
pause = interactive()
set.seed(1)

fn = makeCosineMixtureFunction(1)
obj.fun = convertToMinimization(fn)
# mbo control with defaults

ctrl = makeMBOControl()
ctrl = setMBOControlTermination(ctrl, iters = 10L)
ctrl = setMBOControlInfill(ctrl, crit = makeMBOInfillCritEI(), opt = "focussearch", opt.focussearch.points = 500L, opt.restarts = 1L)

design = generateDesign(5L, getParamSet(obj.fun), fun = lhs::maximinLHS)

run = exampleRun(obj.fun, design = design,
  control = ctrl, points.per.dim = 1000, show.info = TRUE)

for(i in 1:10) {
  plotExampleRun(run, iters = i, pause = pause, densregion = TRUE, gg.objects = list(theme_bw()))
}
```

`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)](https://link.springer.com/article/10.1023/A:1008306431147)
* 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](https://github.com/mllg/batchtools) and [parallelMap](https://github.com/mlr-org/parallelMap)

For the *surrogate*, `mlrMBO` allows any regression learner from [`mlr`](https://github.com/mlr-org/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](https://github.com/jakobbossek/smoof), which also offers many test functions for example runs or benchmarks.

Parameter spaces and initial designs are created with package [ParamHelpers](https://github.com/mlr-org/ParamHelpers).


# How to Cite

Please cite our [arxiv paper](https://arxiv.org/abs/1703.03373) (Preprint).
You can get citation info via `citation("mlrMBO")` or copy the following BibTex entry:

```bibtex
@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](https://doi.org/10.1007/978-3-319-09584-4_17)
* Multi-objective optimization: [Model-Based Multi-objective Optimization: Taxonomy, Multi-Point Proposal, Toolbox and Benchmark](https://doi.org/10.1007/978-3-319-15934-8_5)
* 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](https://doi.org/10.1109/SSCI.2016.7850221)

Owner

  • Name: mlr-org
  • Login: mlr-org
  • Kind: organization
  • Location: Munich, Germany

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,476
  • Total Committers: 23
  • Avg Commits per committer: 64.174
  • Development Distribution Score (DDS): 0.698
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Jakob Richter c****e@j****e 446
Bernd Bischl b****l@g****t 342
Jakob Bossek i****o@j****e 243
Daniel Horn d****n@t****e 142
Michel m****g@g****m 115
pat-s p****z@g****m 50
Travis CI 38
Karin Schork s****n@g****m 30
ja-thomas j****s 23
nbauer2 b****r@b****e 11
Bernd Bischl y****u@e****m 8
Jakob Bossek b****k@w****e 7
github-actions[bot] 4****] 4
Tobias w****r@i****e 4
mb706 m****6 3
unknown w****r@P****e 3
Benjamin Klepper b****r@g****m 1
Dirk s****n@s****e 1
Katrin Leinweber 9****r 1
Pascal Kerschke p****e@u****e 1
Jakob Richter r****r@s****e 1
Daniel Horn d****n@l****e 1
verenamayer v****y@g****m 1

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 62
  • Total pull requests: 39
  • Average time to close issues: 3 months
  • Average time to close pull requests: 28 days
  • Total issue authors: 30
  • Total pull request authors: 6
  • Average comments per issue: 2.89
  • Average comments per pull request: 0.74
  • Merged pull requests: 24
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • mb706 (13)
  • swaheera (5)
  • zkurtz (5)
  • jakob-r (3)
  • rodemann (3)
  • Seager1989 (3)
  • pat-s (2)
  • RPdavies (2)
  • vrodriguezf (2)
  • zjujdj (2)
  • dipenpatel235 (2)
  • robsmith11 (2)
  • dagola (1)
  • pfistfl (1)
  • aminevsaziz (1)
Pull Request Authors
  • jakob-r (24)
  • pat-s (8)
  • ja-thomas (3)
  • mb706 (2)
  • berndbischl (1)
  • elseverzeynal (1)
Top Labels
Issue Labels
documentation (4) bug (2) prio-medium (2) prio-high (2) enhancement (1)
Pull Request Labels
enhancement (4) work in progress (3) ready for merge (?) (2) prio-low (1) prio-high (1) later (1) prio-medium (1)

Packages

  • Total packages: 4
  • Total downloads:
    • cran 2,524 last-month
  • Total docker downloads: 47,146
  • Total dependent packages: 9
    (may contain duplicates)
  • Total dependent repositories: 15
    (may contain duplicates)
  • Total versions: 15
  • Total maintainers: 1
proxy.golang.org: github.com/mlr-org/mlrmbo
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
proxy.golang.org: github.com/mlr-org/mlrMBO
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
cran.r-project.org: mlrMBO

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

  • Versions: 8
  • Dependent Packages: 8
  • Dependent Repositories: 15
  • Downloads: 2,524 Last month
  • Docker Downloads: 47,146
Rankings
Forks count: 1.4%
Stargazers count: 2.3%
Dependent packages count: 6.1%
Dependent repos count: 7.4%
Downloads: 8.0%
Average: 8.1%
Docker downloads count: 23.2%
Maintainers (1)
Last synced: 6 months ago
conda-forge.org: r-mlrmbo
  • Versions: 5
  • Dependent Packages: 1
  • Dependent Repositories: 0
Rankings
Forks count: 24.0%
Stargazers count: 24.9%
Average: 27.9%
Dependent packages count: 28.8%
Dependent repos count: 34.0%
Last synced: 6 months ago

Dependencies

DESCRIPTION cran
  • ParamHelpers >= 1.10 depends
  • mlr >= 2.10 depends
  • smoof >= 1.5.1 depends
  • BBmisc >= 1.11 imports
  • backports >= 1.1.0 imports
  • checkmate >= 1.8.2 imports
  • data.table * imports
  • lhs * imports
  • parallelMap >= 1.3 imports
  • DiceKriging * suggests
  • GGally * suggests
  • akima * suggests
  • cmaesr >= 1.0.3 suggests
  • covr * suggests
  • earth * suggests
  • emoa * suggests
  • ggplot2 * suggests
  • gridExtra * suggests
  • interp * suggests
  • kernlab * suggests
  • kknn * suggests
  • knitr * suggests
  • mco * suggests
  • nnet * suggests
  • party * suggests
  • randomForest * suggests
  • reshape2 * suggests
  • rgenoud * suggests
  • rmarkdown * suggests
  • rpart * suggests
  • testthat * suggests