Skip to content

mlr-org/mlr3learners.template

Repository files navigation

mlr3learners.template

This packages provides a template for adding new learners for mlr3.

Creating new learners is covered in detail in section "Adding new learners" in the mlr3book. This package serves as a starting point for learners to share with others.

Instructions

This repository is a template repository to create a learner that aligns with existing mlr3 learners. Perform the following tasks to create your learner:

  1. Replace all instances of
    1. <package> with the name of the underlying package.
    2. <type> with the learner type, e.g. Classif or Regr.
    3. <algorithm> with the name of the algorithm, e.g randomForest.
  2. Rename files following the same scheme as in 1).
  3. Check if the learner supports feature importance internally. If yes, add a importance() method in the respective learner class.
  4. Check if the learner supports out-of-bag error estimation internally. If yes, add a oob_error() method in the respective learner class.
  5. Add yourself as the maintainer in DESCRIPTION.
  6. Set up Continuous Integration (CI). The GitHub Actions YAML files live in .github/workflows.
    1. Replace <package> in l.17 of tic.R with the name of the package.
    2. Update the "Paramtest" files in inst/paramtest/ to ensure no parameter was forgotten in the learner. Make sure that the CI test passes for "Param Check".
    3. Update the badge in README.md with the package name.
  7. Run devtools::document(roclets = c('rd', 'collate', 'namespace')) to create the NAMESPACE and man/ files.
  8. Leave the files in man-roxygen as they are - they will just work.
  9. Run usethis::use_tidy_description() to format DESCRIPTION.
  10. Test your learner locally by running devtools::test()
  11. Check your package by running rcmdcheck::rcmdcheck()
  12. Check if your learner complies with the mlr style guide.
  13. Ensure that the CI builds complete successfully (via the "Actions" menu in the repo).
  14. Check on last small details like the name of the learner package and for possible leftovers of the placeholders used in the template.

Last but not least go through

👉 this checklist 📄

to make sure your learner is ready for review.

After your learner is accepted, it can be added to mlr3learners.drat, making it installabe via the canonical install.packages() function without the need to live on CRAN.

Resources for adding a new learner (summary)

!Important!: Delete all instructions up to this point and just leave the part below.

mlr3learners.<package>

tic Parameter Check mlr3learners.drat codecov StackOverflow

Adds <algorithm1> and <algorithm2> from the {} package to {mlr3}.

Install the latest release of the package via

install.packages("mlr3learners.<package>")

by following the instructions in the mlr3learners.drat README.

Alternatively, you can install the latest version of {mlr3learners.} from Github with:

remotes::install_github("mlr3learners/mlr3learners.<package>")

About

Learner from package {<package>} for mlr3

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages