Split a Classification Task into Binary Classification Tasks
Source:R/PipeOpOVR.R
mlr_pipeops_ovrsplit.Rd
Splits a classification Task into several binary classification Tasks to perform "One vs. Rest" classification. This works in combination
with PipeOpOVRUnite
.
For each target level a new binary classification Task is constructed with
the respective target level being the positive class and all other target levels being the
new negative class "rest"
.
This PipeOp
creates a Multiplicity
, which means that subsequent PipeOp
s are executed
multiple times, once for each created binary Task, until a PipeOpOVRUnite
is reached.
Note that Multiplicity
is currently an experimental features and the implementation or UI
may change.
Construction
id
::character(1)
Identifier of the resulting object, default"ovrsplit"
.param_vals
:: namedlist
List of hyperparameter settings, overwriting the hyperparameter settings that would otherwise be set during construction. Defaultlist()
.
Input and Output Channels
PipeOpOVRSplit
has one input channel named "input"
taking a TaskClassif
both during training and prediction.
PipeOpOVRSplit
has one output channel named "output"
returning a Multiplicity
of
TaskClassif
s both during training and prediction, i.e., the newly
constructed binary classification Tasks.
State
The $state
contains the original target levels of the TaskClassif
supplied
during training.
Internals
The original target levels stored in the $state
are also used during prediction when creating the new
binary classification Tasks.
The names of the element of the output Multiplicity
are given by the levels of the target.
If a target level "rest"
is present in the input TaskClassif
, the
negative class will be labeled as "rest." (using as many
"."` postfixes needed to yield a
valid label).
Should be used in combination with PipeOpOVRUnite
.
Fields
Only fields inherited from PipeOp
.
Methods
Only methods inherited from PipeOp
.
See also
https://mlr-org.com/pipeops.html
Other PipeOps:
PipeOp
,
PipeOpEnsemble
,
PipeOpImpute
,
PipeOpTargetTrafo
,
PipeOpTaskPreproc
,
PipeOpTaskPreprocSimple
,
mlr_pipeops
,
mlr_pipeops_adas
,
mlr_pipeops_blsmote
,
mlr_pipeops_boxcox
,
mlr_pipeops_branch
,
mlr_pipeops_chunk
,
mlr_pipeops_classbalancing
,
mlr_pipeops_classifavg
,
mlr_pipeops_classweights
,
mlr_pipeops_colapply
,
mlr_pipeops_collapsefactors
,
mlr_pipeops_colroles
,
mlr_pipeops_copy
,
mlr_pipeops_datefeatures
,
mlr_pipeops_decode
,
mlr_pipeops_encode
,
mlr_pipeops_encodeimpact
,
mlr_pipeops_encodelmer
,
mlr_pipeops_featureunion
,
mlr_pipeops_filter
,
mlr_pipeops_fixfactors
,
mlr_pipeops_histbin
,
mlr_pipeops_ica
,
mlr_pipeops_imputeconstant
,
mlr_pipeops_imputehist
,
mlr_pipeops_imputelearner
,
mlr_pipeops_imputemean
,
mlr_pipeops_imputemedian
,
mlr_pipeops_imputemode
,
mlr_pipeops_imputeoor
,
mlr_pipeops_imputesample
,
mlr_pipeops_kernelpca
,
mlr_pipeops_learner
,
mlr_pipeops_learner_pi_cvplus
,
mlr_pipeops_learner_quantiles
,
mlr_pipeops_missind
,
mlr_pipeops_modelmatrix
,
mlr_pipeops_multiplicityexply
,
mlr_pipeops_multiplicityimply
,
mlr_pipeops_mutate
,
mlr_pipeops_nearmiss
,
mlr_pipeops_nmf
,
mlr_pipeops_nop
,
mlr_pipeops_ovrunite
,
mlr_pipeops_pca
,
mlr_pipeops_proxy
,
mlr_pipeops_quantilebin
,
mlr_pipeops_randomprojection
,
mlr_pipeops_randomresponse
,
mlr_pipeops_regravg
,
mlr_pipeops_removeconstants
,
mlr_pipeops_renamecolumns
,
mlr_pipeops_replicate
,
mlr_pipeops_rowapply
,
mlr_pipeops_scale
,
mlr_pipeops_scalemaxabs
,
mlr_pipeops_scalerange
,
mlr_pipeops_select
,
mlr_pipeops_smote
,
mlr_pipeops_smotenc
,
mlr_pipeops_spatialsign
,
mlr_pipeops_subsample
,
mlr_pipeops_targetinvert
,
mlr_pipeops_targetmutate
,
mlr_pipeops_targettrafoscalerange
,
mlr_pipeops_textvectorizer
,
mlr_pipeops_threshold
,
mlr_pipeops_tomek
,
mlr_pipeops_tunethreshold
,
mlr_pipeops_unbranch
,
mlr_pipeops_updatetarget
,
mlr_pipeops_vtreat
,
mlr_pipeops_yeojohnson
Other Multiplicity PipeOps:
Multiplicity()
,
PipeOpEnsemble
,
mlr_pipeops_classifavg
,
mlr_pipeops_featureunion
,
mlr_pipeops_multiplicityexply
,
mlr_pipeops_multiplicityimply
,
mlr_pipeops_ovrunite
,
mlr_pipeops_regravg
,
mlr_pipeops_replicate
Other Experimental Features:
Multiplicity()
,
mlr_pipeops_multiplicityexply
,
mlr_pipeops_multiplicityimply
,
mlr_pipeops_ovrunite
,
mlr_pipeops_replicate
Examples
library(mlr3)
task = tsk("iris")
po = po("ovrsplit")
po$train(list(task))
#> $output
#> Multiplicity:
#> $setosa
#> <TaskClassif:iris> (150 x 5): Iris Flowers
#> * Target: Species
#> * Properties: twoclass
#> * Features (4):
#> - dbl (4): Petal.Length, Petal.Width, Sepal.Length, Sepal.Width
#>
#> $versicolor
#> <TaskClassif:iris> (150 x 5): Iris Flowers
#> * Target: Species
#> * Properties: twoclass
#> * Features (4):
#> - dbl (4): Petal.Length, Petal.Width, Sepal.Length, Sepal.Width
#>
#> $virginica
#> <TaskClassif:iris> (150 x 5): Iris Flowers
#> * Target: Species
#> * Properties: twoclass
#> * Features (4):
#> - dbl (4): Petal.Length, Petal.Width, Sepal.Length, Sepal.Width
#>
#>
po$predict(list(task))
#> $output
#> Multiplicity:
#> $setosa
#> <TaskClassif:iris> (150 x 5): Iris Flowers
#> * Target: Species
#> * Properties: twoclass
#> * Features (4):
#> - dbl (4): Petal.Length, Petal.Width, Sepal.Length, Sepal.Width
#>
#> $versicolor
#> <TaskClassif:iris> (150 x 5): Iris Flowers
#> * Target: Species
#> * Properties: twoclass
#> * Features (4):
#> - dbl (4): Petal.Length, Petal.Width, Sepal.Length, Sepal.Width
#>
#> $virginica
#> <TaskClassif:iris> (150 x 5): Iris Flowers
#> * Target: Species
#> * Properties: twoclass
#> * Features (4):
#> - dbl (4): Petal.Length, Petal.Width, Sepal.Length, Sepal.Width
#>
#>