README.md

mlr3multioutput

tic CRAN status codecov StackOverflow

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).

Installation

Install the development version from GitHub:

remotes::install_github("mlr-org/mlr3multioutput")

Example

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)

Design

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.

Currently implemented Learners and Strategies

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 | -- |

Long-term Goals

Resources



mlr-org/mlr3multioutput documentation built on Nov. 22, 2020, 1:17 p.m.