Perform alternative path branching: PipeOpBranch has multiple output channels
that connect to different paths in a Graph. At any time, only one of these
paths will be taken for execution. At the end of the different paths, the
PipeOpUnbranch PipeOp must be used to indicate the end of alternative paths.
Not to be confused with PipeOpCopy, the naming scheme is a bit unfortunate.
PipeOpBranch$new(options, id = "branch", param_vals = list())
options :: numeric(1) | character
If options is an integer number, it determines the number of
output channels / options that are created, named output1...output<n>. The
$selection parameter will then be a ParamInt.
If options is a character, it determines the names of channels directly.
The $selection parameter will then be a ParamFct.
id :: character(1)
Identifier of resulting object, default "branch".
param_vals :: named list
List of hyperparameter settings, overwriting the hyperparameter settings that would otherwise be set during construction. Default list().
PipeOpBranch has one input channel named "input", taking any input ("*") both during training and prediction.
PipeOpBranch has multiple output channels depending on the options construction argument, named "output1", "output2", ...
if options is numeric, and named after each options value if options is a character.
All output channels produce the object given as input ("*") or NO_OP, both during training and prediction.
The $state is left empty (list()).
selection :: numeric(1) | character(1)
Selection of branching path to take. Is a ParamInt if the options parameter
during construction was a numeric(1), and ranges from 1 to options. Is a
ParamFct if the options parameter was a character and its possible values
are the options values. Initialized to either 1 (if the options construction argument is numeric(1))
or the first element of options (if it is character).
Alternative path branching is handled by the PipeOp backend. To indicate that
a path should not be taken, PipeOpBranch returns the NO_OP object on its
output channel. The PipeOp handles each NO_OP input by automatically
returning a NO_OP output without calling private$.train() or private$.predict(),
until PipeOpUnbranch is reached. PipeOpUnbranch will then take multiple inputs,
all except one of which must be a NO_OP, and forward the only non-NO_OP
object on its output.
Only fields inherited from PipeOp.
Only methods inherited from PipeOp.
Other PipeOps:
PipeOpEnsemble,
PipeOpImpute,
PipeOpTargetTrafo,
PipeOpTaskPreprocSimple,
PipeOpTaskPreproc,
PipeOp,
mlr_pipeops_boxcox,
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_encodeimpact,
mlr_pipeops_encodelmer,
mlr_pipeops_encode,
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_missind,
mlr_pipeops_modelmatrix,
mlr_pipeops_multiplicityexply,
mlr_pipeops_multiplicityimply,
mlr_pipeops_mutate,
mlr_pipeops_nmf,
mlr_pipeops_nop,
mlr_pipeops_ovrsplit,
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_scalemaxabs,
mlr_pipeops_scalerange,
mlr_pipeops_scale,
mlr_pipeops_select,
mlr_pipeops_smote,
mlr_pipeops_spatialsign,
mlr_pipeops_subsample,
mlr_pipeops_targetinvert,
mlr_pipeops_targetmutate,
mlr_pipeops_targettrafoscalerange,
mlr_pipeops_textvectorizer,
mlr_pipeops_threshold,
mlr_pipeops_tunethreshold,
mlr_pipeops_unbranch,
mlr_pipeops_updatetarget,
mlr_pipeops_vtreat,
mlr_pipeops_yeojohnson,
mlr_pipeops
Other Path Branching:
NO_OP,
filter_noop(),
is_noop(),
mlr_pipeops_unbranch
# NOT RUN {
library("mlr3")
pca = po("pca")
nop = po("nop")
choices = c("pca", "nothing")
gr = po("branch", choices) %>>%
gunion(list(pca, nop)) %>>%
po("unbranch", choices)
gr$param_set$values$branch.selection = "pca"
gr$train(tsk("iris"))
gr$param_set$values$branch.selection = "nothing"
gr$train(tsk("iris"))
# }
Run the code above in your browser using DataLab