mlr Machine Learning in R

Build Status CRAN Status Badge CRAN Downloads StackOverflow


mlr - How to Cite and Citing Publications

Please cite our JMLR paper [bibtex].

Some parts of the package were created as part of other publications. If you use these parts, please cite the relevant work appropriately:

A list of publications that cite mlr can be found in the wiki.


R does not define a standardized interface for all its machine learning algorithms. Therefore, for any non-trivial experiments, you need to write lengthy, tedious and error-prone wrappers to call the different algorithms and unify their respective output.

Additionally you need to implement infrastructure to resample your models, optimize hyperparameters, select features, cope with pre- and post-processing of data and compare models in a statistically meaningful way. As this becomes computationally expensive, you might want to parallelize your experiments as well. This often forces users to make crummy trade-offs in their experiments due to time constraints or lacking expert programming skills.

mlr provides this infrastructure so that you can focus on your experiments! The framework provides supervised methods like classification, regression and survival analysis along with their corresponding evaluation and optimization methods, as well as unsupervised methods like clustering. It is written in a way that you can extend it yourself or deviate from the implemented convenience methods and construct your own complex experiments or algorithms.

Furthermore, the package is nicely connected to the OpenML R package and its online platform, which aims at supporting collaborative machine learning online and allows to easily share datasets as well as machine learning tasks, algorithms and experiments in order to support reproducible research.



Changes of the packages can be accessed in the NEWS file shipped with the package.

Talks and Videos

Get in Touch

Please use the issue tracker for problems, questions and feature requests. Don't email in most cases, as we forget these mails.

We also do not hate beginners and it is perfectly valid to mark an issue as "Question".

Please don't forget that all of us work in academia and put a lot of work into this project, simply because we like it, not because we are specifically paid for it.

We also welcome pull requests or new developers. Just make sure that you have a glance at our mlr coding guidelines before.

For everything else the maintainer Bernd Bischl can be reached via mail. He (=me) is sometimes busy, so please use the other channels for appropriate stuff first, so you get quicker responses ;-)


With the start of v2.13 we switched from mkdocs to pkgdown. With this change, all source files are now located in this repo under vignettes/tutorial.

Modification of a tutorial section:

If you want to modify/add a tutorial section, please follow these steps:

  1. Open the respective source file, e.g. task.Rmd.
  2. Follow the style guide while editing:
    • Reference mlr functions as , e.g. makeLearner().
    • Reference external functions as , e.g. kernlab::ksvm().
    • Reference other tutorial pages with <name_of_vignette>.html, e.g. [bagging](bagging.html).
    • Always start a new sentence with a new line.
    • If you want to insert a paragraph, skip one line.
    • The most up-level header starts with ### and is subsequently followed by #### and ##### etc.
    • Always insert exactly one empty line before and after a code chunk, header, figure or a table.
    • Referencing images is a bit tricky since we need to ensure that they look good in both the HTML and PDF version. Put your image into vignettes/tutorial/devel/pdf/img/ and see the examples in resampling.Rmd, nested_resampling.Rmd or handling_of_spatial_data.Rmd.
  3. Make sure that the .Rmd file is working on its own, i.e. compile it as a single file (preferably using the knit button in RStudio) and see if everything works. Put required packages in the setup chunk at the beginning of the tutorial.

Preview the changes:

If you want to view the complete pkgdown site locally, run pkgdown::build_site(). You don't have to render the complete site every time you change one tutorial. Just edit the .Rmd under your local docs/ directory and preview the tutorial again in the browser. Important: Do not commit the changed .Rmd file under docs/ but copy the changes to the respective file in the vignettes/ directory and commit only this file.

Adding a new section:

Edit _pkgdown.yml and add the new section at the appropriate place.

Issues and Pull Requests:

If you want to open an issue or pull request that is related to mlr-tutorial, label it with tutorial and mention jakob-r or pat-s if you need help.

berndbischl/mlr documentation built on June 23, 2018, 5:34 a.m.