Storing and working with multi-output Tasks in mlr3.
Multi-output Tasks are tasks with multiple targets of possibly different task_types that share the same features (and therefore observations).
Install the development version from GitHub:
remotes::install_github("mlr-org/mlr3multioutput")
Instantiate an example Task "linnerud", which has 3 regression targets.
library(mlr3)
library(mlr3multioutput)
t = tsk("linnerud")
t
## <TaskMultioutput>linnerud> (20 x 6)
## * Target: Pulls, Squats, Jumps
## * Properties: -
## * Features (4):
## - int (3): Pulse, Waist, Weight
And afterwards we can train and predict:
learner <- lrn("multioutput.featureless")
learner$train(t)
learner$predict(t)
The current goal of the package is to implement multi-output Tasks for
mlr. Such Tasks can be either modeled using a separate learner for each class (via mlr3pipelines), using Classification and Regression chains (again, via mlr3pipelines) or alternatively using Learners that can directly handle and work with multiple outputs.
Several design decisions are not made yet, so input is highly appreciated.
mlr3multioutput implements Learners as well as reduction strategies for multioutput Tasks.
| Learner | Details | Reference | |---|---|---| | multioutput.featureless | A featureless learner based on ("regr." or "classif").featureless | -- |
| PipeOp |Details | Reference |
|---|---|---|
| po("multioutsplit") | Split up a Multioutput Task in several classif, regr or ... tasks | -- |
| po("multioutunite") | Unite classif, regr or ... predictions into a PredictionMultioutput | -- |
| po("multioutlrn") | Apply a list of per-task-type learners to a TaskMultioutput | -- |
mlr3pipelines.mlr3 and its ecosystem, but it is still unfinished.Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.