Perform "One vs. Rest" classification by (weighted) majority vote prediction from classification Predictions. This works in combination with PipeOpOVRSplit
.
Weights can be set as a parameter; if none are provided, defaults to equal weights for each prediction.
Always returns a "prob"
prediction, regardless of the incoming Learner
's
$predict_type
. The label of the class with the highest predicted probability is selected as the
"response"
prediction.
Missing values during prediction are treated as each class label being equally likely.
This PipeOp
uses a Multiplicity
input, which is created by PipeOpOVRSplit
and causes
PipeOp
s on the way to this PipeOp
to be called once for each individual binary Task.
Note that Multiplicity
is currently an experimental features and the implementation or UI
may change.
Format
R6Class
inheriting from PipeOpEnsemble
/PipeOp
.
Construction
id
::character(1)
Identifier of the resulting object, default"ovrunite"
.param_vals
:: namedlist
List of hyperparameter settings, overwriting the hyperparameter settings that would otherwise be set during construction. Defaultlist()
.
Input and Output Channels
Input and output channels are inherited from PipeOpEnsemble
. Instead of a
Prediction
, a PredictionClassif
is used as
input and output during prediction and PipeOpEnsemble
's collect
parameter is initialized
with TRUE
to allow for collecting a Multiplicity
input.
State
The $state
is left empty (list()
).
Parameters
The parameters are the parameters inherited from the PipeOpEnsemble
.
Internals
Inherits from PipeOpEnsemble
by implementing the private$.predict()
method.
Should be used in combination with PipeOpOVRSplit
.
Fields
Only fields inherited from PipeOpEnsemble
/PipeOp
.
Methods
Only methods inherited from PipeOpEnsemble
/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_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_ovrsplit
,
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 Ensembles:
PipeOpEnsemble
,
mlr_learners_avg
,
mlr_pipeops_classifavg
,
mlr_pipeops_regravg
Other Multiplicity PipeOps:
Multiplicity()
,
PipeOpEnsemble
,
mlr_pipeops_classifavg
,
mlr_pipeops_featureunion
,
mlr_pipeops_multiplicityexply
,
mlr_pipeops_multiplicityimply
,
mlr_pipeops_ovrsplit
,
mlr_pipeops_regravg
,
mlr_pipeops_replicate
Other Experimental Features:
Multiplicity()
,
mlr_pipeops_multiplicityexply
,
mlr_pipeops_multiplicityimply
,
mlr_pipeops_ovrsplit
,
mlr_pipeops_replicate
Examples
library(mlr3)
task = tsk("iris")
gr = po("ovrsplit") %>>% lrn("classif.rpart") %>>% po("ovrunite")
gr$train(task)
#> $ovrunite.output
#> NULL
#>
gr$predict(task)
#> $ovrunite.output
#> <PredictionClassif> for 150 observations:
#> row_ids truth response prob.setosa prob.versicolor prob.virginica
#> 1 setosa setosa 1 0 0
#> 2 setosa setosa 1 0 0
#> 3 setosa setosa 1 0 0
#> --- --- --- --- --- ---
#> 148 virginica virginica 0 0 1
#> 149 virginica virginica 0 0 1
#> 150 virginica virginica 0 0 1
#>
gr$pipeops$classif.rpart$learner$predict_type = "prob"
gr$predict(task)
#> $ovrunite.output
#> <PredictionClassif> for 150 observations:
#> row_ids truth response prob.setosa prob.versicolor prob.virginica
#> 1 setosa setosa 0.9541284 0.00000000 0.04587156
#> 2 setosa setosa 0.9541284 0.00000000 0.04587156
#> 3 setosa setosa 0.9541284 0.00000000 0.04587156
#> --- --- --- --- --- ---
#> 148 virginica virginica 0.0000000 0.02173913 0.97826087
#> 149 virginica virginica 0.0000000 0.02173913 0.97826087
#> 150 virginica virginica 0.0000000 0.02173913 0.97826087
#>