PipeOpEnsemble | R Documentation |
Parent class for PipeOp
s that aggregate predictions. Implements the private$.train()
and private$.predict()
methods necessary
for a PipeOp
and requires deriving classes to create the private$weighted_avg_predictions()
function.
Abstract R6Class
inheriting from PipeOp
.
Note: This object is typically constructed via a derived class, e.g. PipeOpClassifAvg
or PipeOpRegrAvg
.
PipeOpEnsemble$new(innum = 0, collect_multiplicity = FALSE, id, param_set = ps(), param_vals = list(), packages = character(0), prediction_type = "Prediction")
innum
:: numeric(1)
Determines the number of input channels.
If innum
is 0 (default), a vararg input channel is created that can take an arbitrary number of inputs.
collect_multiplicity
:: logical(1)
If TRUE
, the input is a Multiplicity
collecting channel. This means, a
Multiplicity
input, instead of multiple normal inputs, is accepted and the members are aggregated. This requires innum
to be 0.
Default is FALSE
.
id
:: character(1)
Identifier of the resulting object.
param_set
:: ParamSet
("Hyper"-)Parameters in form of a ParamSet
for the resulting PipeOp
.
param_vals
:: named list
List of hyperparameter settings, overwriting the hyperparameter settings that would otherwise be set during construction. Default list()
.
packages
:: character
Set of packages required for this PipeOp
. These packages are loaded during $train()
and $predict()
, but not attached.
Default character(0)
.
prediction_type
:: character(1)
The predict
entry of the $input
and $output
type specifications.
Should be "Prediction"
(default) or one of its subclasses, e.g. "PredictionClassif"
, and correspond to the type accepted by
private$.train()
and private$.predict()
.
PipeOpEnsemble
has multiple input channels depending on the innum
construction argument, named "input1"
, "input2"
, ...
if innum
is nonzero; if innum
is 0, there is only one vararg input channel named "..."
.
All input channels take only NULL
during training and take a Prediction
during prediction.
PipeOpEnsemble
has one output channel named "output"
, producing NULL
during training and a Prediction
during prediction.
The output during prediction is in some way a weighted averaged representation of the input.
The $state
is left empty (list()
).
weights
:: numeric
Relative weights of input predictions. If this has length 1, it is ignored and weighs all inputs equally. Otherwise it must have
length equal to the number of connected inputs. Initialized to 1 (equal weights).
The commonality of ensemble methods using PipeOpEnsemble
is that they take a NULL
-input during training and save an empty $state
. They can be
used following a set of PipeOpLearner
PipeOp
s to perform (possibly weighted) prediction averaging. See e.g.
PipeOpClassifAvg
and PipeOpRegrAvg
which both inherit from this class.
Should it be necessary to use the output of preceding Learner
s
during the "training" phase, then PipeOpEnsemble
should not be used. In fact, if training time behaviour of a Learner
is important, then
one should use a PipeOpLearnerCV
instead of a PipeOpLearner
, and the ensemble can be created with a Learner
encapsulated by a PipeOpLearner
.
See LearnerClassifAvg
and LearnerRegrAvg
for examples.
Only fields inherited from PipeOp
.
Methods inherited from PipeOp
as well as:
weighted_avg_prediction(inputs, weights, row_ids, truth)
(list
of Prediction
, numeric
, integer
| character
, list
) -> NULL
Create Prediction
s that correspond to the weighted average of incoming Prediction
s. This is
called by private$.predict()
with cleaned and sanity-checked values: inputs
are guaranteed to fit together,
row_ids
and truth
are guaranteed to be the same as each one in inputs
, and weights
is guaranteed to have the same length as inputs
.
This method is abstract, it must be implemented by deriving classes.
https://mlr-org.com/pipeops.html
Other PipeOps:
PipeOp
,
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_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_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_tunethreshold
,
mlr_pipeops_unbranch
,
mlr_pipeops_updatetarget
,
mlr_pipeops_vtreat
,
mlr_pipeops_yeojohnson
Other Multiplicity PipeOps:
Multiplicity()
,
mlr_pipeops_classifavg
,
mlr_pipeops_featureunion
,
mlr_pipeops_multiplicityexply
,
mlr_pipeops_multiplicityimply
,
mlr_pipeops_ovrsplit
,
mlr_pipeops_ovrunite
,
mlr_pipeops_regravg
,
mlr_pipeops_replicate
Other Ensembles:
mlr_learners_avg
,
mlr_pipeops_classifavg
,
mlr_pipeops_ovrunite
,
mlr_pipeops_regravg
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.