diff --git a/DESCRIPTION b/DESCRIPTION index bf81bf133..13ea2f2ed 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: mlr3 Title: Machine Learning in R - Next Generation -Version: 0.20.2.9000 +Version: 0.21.0 Authors@R: c( person("Michel", "Lang", , "michellang@gmail.com", role = "aut", diff --git a/NEWS.md b/NEWS.md index b9aac41ba..da97412ab 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# mlr3 (development version) +# mlr3 0.21.0 * BREAKING CHANGE: Deprecated `data_format` and `data_formats` for `Learner`, `Task`, and `DataBackend` classes. * feat: The `partition()` function creates training, test and validation sets now. @@ -12,7 +12,7 @@ * feat: Measures can now have an empty `$predict_sets` (#1094). This is relevant for measures that only extract information from the model of a learner (such as internal validation scores or AIC / BIC) * BREAKING CHANGE: Deprecated the `$divide()` method -* fix: `Task$cbind()` now works with non-standard primary keys for `data.frames` (#961). +* fix: `Task$cbind()` now works with non-standard primary keys for `data.frames` (#961). * fix: Triggering of fallback learner now has log-level `"info"` instead of `"debug"` (#972). * feat: Added new measure `regr.pinball` here and in mlr3measures. * feat: Added new measure `mu_auc` here and in mlr3measures. diff --git a/R/warn_deprecated.R b/R/warn_deprecated.R index 0bfd89488..3e9b41259 100644 --- a/R/warn_deprecated.R +++ b/R/warn_deprecated.R @@ -8,7 +8,7 @@ #' `mlr3.warn_deprecated = FALSE`. #' #' The warning is of the format -#' " is deprecated and will be removed in the future." +#' "what is deprecated and will be removed in the future." #' #' Use the 'deprecated_binding()' helper function to create an active binding #' that generates a warning when accessed. diff --git a/README.md b/README.md index c71e1972c..ae9be1201 100644 --- a/README.md +++ b/README.md @@ -19,51 +19,53 @@ Status](https://www.r-pkg.org/badges/version-ago/mlr3)](https://cran.r-project.o ## Resources (for users and developers) -- We have written a [book](https://mlr3book.mlr-org.com/). This should - be the central entry point to the package. -- The [mlr-org website](https://mlr-org.com/) includes for example a - [gallery](https://mlr-org.com/gallery.html) with case studies. -- [Reference manual](https://mlr3.mlr-org.com/reference/) -- [FAQ](https://mlr-org.com/faq.html) -- Ask questions on [Stackoverflow (tag - \#mlr3)](https://stackoverflow.com/questions/tagged/mlr3) -- **Extension Learners** - - Recommended core regression, classification, and survival learners - are in [mlr3learners](https://github.com/mlr-org/mlr3learners) - - All others are in - [mlr3extralearners](https://github.com/mlr-org/mlr3extralearners) - - Use the [learner search](https://mlr-org.com/learners.html) to get a - simple overview -- **Cheatsheets** - - [Overview of cheatsheets](https://cheatsheets.mlr-org.com) - - [mlr3](https://cheatsheets.mlr-org.com/mlr3.pdf) - - [mlr3tuning](https://cheatsheets.mlr-org.com/mlr3tuning.pdf) - - [mlr3pipelines](https://cheatsheets.mlr-org.com/mlr3pipelines.pdf) -- **Videos**: - - [useR2019 talk on mlr3](https://www.youtube.com/watch?v=wsP2hiFnDQs) - - [useR2019 talk on mlr3pipelines and - mlr3tuning](https://www.youtube.com/watch?v=gEW5RxkbQuQ) - - [useR2020 tutorial on mlr3, mlr3tuning and - mlr3pipelines](https://www.youtube.com/watch?v=T43hO2o_nZw) - -- **Courses/Lectures** - - The course [Introduction to Machine learning - (I2ML)](https://slds-lmu.github.io/i2ml/) is a free and open flipped - classroom course on the basics of machine learning. `mlr3` is used - in the - [demos](https://github.com/slds-lmu/lecture_i2ml/tree/master/code-demos-pdf) - and - [exercises](https://github.com/slds-lmu/lecture_i2ml/tree/master/exercises). -- **Templates/Tutorials** - - [mlr3-targets](https://github.com/mlr-org/mlr3-targets): Tutorial - showcasing how to use {mlr3} with - [targets](https://docs.ropensci.org/targets/) for reproducible ML - workflow automation. -- [List of extension packages](https://mlr-org.com/ecosystem.html) -- [mlr-outreach](https://github.com/mlr-org/mlr-outreach) contains - public talks and slides resources. -- [Wiki](https://github.com/mlr-org/mlr3/wiki): Contains mainly - information for developers. +- We have written a [book](https://mlr3book.mlr-org.com/). This should + be the central entry point to the package. +- The [mlr-org website](https://mlr-org.com/) includes for example a + [gallery](https://mlr-org.com/gallery.html) with case studies. +- [Reference manual](https://mlr3.mlr-org.com/reference/) +- [FAQ](https://mlr-org.com/faq.html) +- Ask questions on [Stackoverflow (tag + \#mlr3)](https://stackoverflow.com/questions/tagged/mlr3) +- **Extension Learners** + - Recommended core regression, classification, and survival + learners are in + [mlr3learners](https://github.com/mlr-org/mlr3learners) + - All others are in + [mlr3extralearners](https://github.com/mlr-org/mlr3extralearners) + - Use the [learner search](https://mlr-org.com/learners.html) to + get a simple overview +- **Cheatsheets** + - [Overview of cheatsheets](https://cheatsheets.mlr-org.com) + - [mlr3](https://cheatsheets.mlr-org.com/mlr3.pdf) + - [mlr3tuning](https://cheatsheets.mlr-org.com/mlr3tuning.pdf) + - [mlr3pipelines](https://cheatsheets.mlr-org.com/mlr3pipelines.pdf) +- **Videos**: + - [useR2019 talk on + mlr3](https://www.youtube.com/watch?v=wsP2hiFnDQs) + - [useR2019 talk on mlr3pipelines and + mlr3tuning](https://www.youtube.com/watch?v=gEW5RxkbQuQ) + - [useR2020 tutorial on mlr3, mlr3tuning and + mlr3pipelines](https://www.youtube.com/watch?v=T43hO2o_nZw) + +- **Courses/Lectures** + - The course [Introduction to Machine learning + (I2ML)](https://slds-lmu.github.io/i2ml/) is a free and open + flipped classroom course on the basics of machine learning. + `mlr3` is used in the + [demos](https://github.com/slds-lmu/lecture_i2ml/tree/master/code-demos-pdf) + and + [exercises](https://github.com/slds-lmu/lecture_i2ml/tree/master/exercises). +- **Templates/Tutorials** + - [mlr3-targets](https://github.com/mlr-org/mlr3-targets): + Tutorial showcasing how to use {mlr3} with + [targets](https://docs.ropensci.org/targets/) for reproducible + ML workflow automation. +- [List of extension packages](https://mlr-org.com/ecosystem.html) +- [mlr-outreach](https://github.com/mlr-org/mlr-outreach) contains + public talks and slides resources. +- [Wiki](https://github.com/mlr-org/mlr3/wiki): Contains mainly + information for developers. ## Installation @@ -156,16 +158,16 @@ rr$score(measure)[, .(task_id, learner_id, iteration, classif.acc)] ``` ## task_id learner_id iteration classif.acc - ## 1: palmerpenguins::penguins classif.rpart 1 0.9391304 + ## 1: palmerpenguins::penguins classif.rpart 1 0.8956522 ## 2: palmerpenguins::penguins classif.rpart 2 0.9478261 - ## 3: palmerpenguins::penguins classif.rpart 3 0.9298246 + ## 3: palmerpenguins::penguins classif.rpart 3 0.9649123 ``` r rr$aggregate(measure) ``` ## classif.acc - ## 0.938927 + ## 0.9361302 ## Extension Packages @@ -195,71 +197,72 @@ would result in non-trivial API changes. ## Design principles -- Only the basic building blocks for machine learning are implemented in - this package. -- Focus on computation here. No visualization or other stuff. That can - go in extra packages. -- Overcome the limitations of R’s [S3 - classes](https://adv-r.hadley.nz/s3.html) with the help of - [R6](https://cran.r-project.org/package=R6). -- Embrace [R6](https://cran.r-project.org/package=R6) for a clean - OO-design, object state-changes and reference semantics. This might be - less “traditional R”, but seems to fit `mlr` nicely. -- Embrace [`data.table`](https://cran.r-project.org/package=data.table) - for fast and convenient data frame computations. -- Combine `data.table` and `R6`, for this we will make heavy use of list - columns in data.tables. -- Defensive programming and type safety. All user input is checked with - [`checkmate`](https://cran.r-project.org/package=checkmate). Return - types are documented, and mechanisms popular in base R which - “simplify” the result unpredictably (e.g., `sapply()` or `drop` - argument in `[.data.frame`) are avoided. -- Be light on dependencies. `mlr3` requires the following packages at - runtime: - - [`parallelly`](https://cran.r-project.org/package=parallelly): - Helper functions for parallelization. No extra recursive - dependencies. - - [`future.apply`](https://cran.r-project.org/package=future.apply): - Resampling and benchmarking is parallelized with the - [`future`](https://cran.r-project.org/package=future) abstraction - interfacing many parallel backends. - - [`backports`](https://cran.r-project.org/package=backports): Ensures - backward compatibility with older R releases. Developed by members - of the `mlr` team. No recursive dependencies. - - [`checkmate`](https://cran.r-project.org/package=checkmate): Fast - argument checks. Developed by members of the `mlr` team. No extra - recursive dependencies. - - [`mlr3misc`](https://cran.r-project.org/package=mlr3misc): - Miscellaneous functions used in multiple mlr3 [extension - packages](https://mlr-org.com/ecosystem.html). Developed by the - `mlr` team. - - [`paradox`](https://cran.r-project.org/package=paradox): - Descriptions for parameters and parameter sets. Developed by the - `mlr` team. No extra recursive dependencies. - - [`R6`](https://cran.r-project.org/package=R6): Reference class - objects. No recursive dependencies. - - [`data.table`](https://cran.r-project.org/package=data.table): - Extension of R’s `data.frame`. No recursive dependencies. - - [`digest`](https://cran.r-project.org/package=digest) (via - `mlr3misc`): Hash digests. No recursive dependencies. - - [`uuid`](https://cran.r-project.org/package=uuid): Create unique - string identifiers. No recursive dependencies. - - [`lgr`](https://cran.r-project.org/package=lgr): Logging facility. - No extra recursive dependencies. - - [`mlr3measures`](https://cran.r-project.org/package=mlr3measures): - Performance measures. No extra recursive dependencies. - - [`mlbench`](https://cran.r-project.org/package=mlbench): A - collection of machine learning data sets. No dependencies. - - [`palmerpenguins`](https://cran.r-project.org/package=palmerpenguins): - A classification data set about penguins, used on examples and - provided as a toy task. No dependencies. -- [Reflections](https://en.wikipedia.org/wiki/Reflection_%28computer_programming%29): - Objects are queryable for properties and capabilities, allowing you to - program on them. -- Additional functionality that comes with extra dependencies: - - To capture output, warnings and exceptions, - [`evaluate`](https://cran.r-project.org/package=evaluate) and - [`callr`](https://cran.r-project.org/package=callr) can be used. +- Only the basic building blocks for machine learning are implemented + in this package. +- Focus on computation here. No visualization or other stuff. That can + go in extra packages. +- Overcome the limitations of R’s [S3 + classes](https://adv-r.hadley.nz/s3.html) with the help of + [R6](https://cran.r-project.org/package=R6). +- Embrace [R6](https://cran.r-project.org/package=R6) for a clean + OO-design, object state-changes and reference semantics. This might + be less “traditional R”, but seems to fit `mlr` nicely. +- Embrace + [`data.table`](https://cran.r-project.org/package=data.table) for + fast and convenient data frame computations. +- Combine `data.table` and `R6`, for this we will make heavy use of + list columns in data.tables. +- Defensive programming and type safety. All user input is checked + with [`checkmate`](https://cran.r-project.org/package=checkmate). + Return types are documented, and mechanisms popular in base R which + “simplify” the result unpredictably (e.g., `sapply()` or `drop` + argument in `[.data.frame`) are avoided. +- Be light on dependencies. `mlr3` requires the following packages at + runtime: + - [`parallelly`](https://cran.r-project.org/package=parallelly): + Helper functions for parallelization. No extra recursive + dependencies. + - [`future.apply`](https://cran.r-project.org/package=future.apply): + Resampling and benchmarking is parallelized with the + [`future`](https://cran.r-project.org/package=future) + abstraction interfacing many parallel backends. + - [`backports`](https://cran.r-project.org/package=backports): + Ensures backward compatibility with older R releases. Developed + by members of the `mlr` team. No recursive dependencies. + - [`checkmate`](https://cran.r-project.org/package=checkmate): + Fast argument checks. Developed by members of the `mlr` team. No + extra recursive dependencies. + - [`mlr3misc`](https://cran.r-project.org/package=mlr3misc): + Miscellaneous functions used in multiple mlr3 [extension + packages](https://mlr-org.com/ecosystem.html). Developed by the + `mlr` team. + - [`paradox`](https://cran.r-project.org/package=paradox): + Descriptions for parameters and parameter sets. Developed by the + `mlr` team. No extra recursive dependencies. + - [`R6`](https://cran.r-project.org/package=R6): Reference class + objects. No recursive dependencies. + - [`data.table`](https://cran.r-project.org/package=data.table): + Extension of R’s `data.frame`. No recursive dependencies. + - [`digest`](https://cran.r-project.org/package=digest) (via + `mlr3misc`): Hash digests. No recursive dependencies. + - [`uuid`](https://cran.r-project.org/package=uuid): Create unique + string identifiers. No recursive dependencies. + - [`lgr`](https://cran.r-project.org/package=lgr): Logging + facility. No extra recursive dependencies. + - [`mlr3measures`](https://cran.r-project.org/package=mlr3measures): + Performance measures. No extra recursive dependencies. + - [`mlbench`](https://cran.r-project.org/package=mlbench): A + collection of machine learning data sets. No dependencies. + - [`palmerpenguins`](https://cran.r-project.org/package=palmerpenguins): + A classification data set about penguins, used on examples and + provided as a toy task. No dependencies. +- [Reflections](https://en.wikipedia.org/wiki/Reflection_%28computer_programming%29): + Objects are queryable for properties and capabilities, allowing you + to program on them. +- Additional functionality that comes with extra dependencies: + - To capture output, warnings and exceptions, + [`evaluate`](https://cran.r-project.org/package=evaluate) and + [`callr`](https://cran.r-project.org/package=callr) can be used. ## Contributing to mlr3 diff --git a/man/warn_deprecated.Rd b/man/warn_deprecated.Rd index a102b798f..520a27ea3 100644 --- a/man/warn_deprecated.Rd +++ b/man/warn_deprecated.Rd @@ -20,7 +20,7 @@ deprecation warnings can be suppressed by setting the option \code{mlr3.warn_deprecated = FALSE}. The warning is of the format -"\if{html}{\out{}} is deprecated and will be removed in the future." +"what is deprecated and will be removed in the future." Use the 'deprecated_binding()' helper function to create an active binding that generates a warning when accessed.