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 |
-- |
- Implement sub-class "Multilabel". This should cover almost all aspects of multi-label modelling.
- Implement classifier and regressor chaining strategies via
mlr3pipelines
.
- There is a book on
mlr3
and its ecosystem, but it is still unfinished. - Reference Manual
- Extension packages.
- useR2019 talks