Aggregates features from all input tasks by cbind()
ing them together into a single Task
.
DataBackend
primary keys and Task
targets have to be equal across all Task
s.
Only the target column(s) of the first Task
are kept.
If assert_targets_equal
is TRUE
then target column names are compared and an error is thrown if they differ across inputs.
PipeOpFeatureUnion$new(innum = 0, id = "featureunion", param_vals = list(), assert_targets_equal = TRUE)
innum
:: numeric(1)
| character
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.
If innum
is a character
vector, the number of input channels
is the length of innum
, and the columns of the result are prefixed with the values.
id
:: character(1)
Identifier of the resulting object, default "featureunion"
.
param_vals
:: named list
List of hyperparameter settings, overwriting the hyperparameter settings that would otherwise be set during construction. Default list()
.
assert_targets_equal
:: logical(1)
If assert_targets_equal
is TRUE
(Default),
task target column names are checked for agreement. Disagreeing target column names are usually a
bug, so this should often be left at the default.
PipeOpFeatureUnion
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 a Task
both during training and prediction.
PipeOpFeatureUnion
has one output channel named "output"
, producing a Task
both during training and prediction.
The output is a Task
constructed by cbind()
ing all features from all input Task
s, both during
training and prediction.
The $state
is left empty (list()
).
PipeOpFeatureUnion
has no Parameters.
PipeOpFeatureUnion
uses the Task
$cbind()
method to bind the input values beyond the first
input to the first Task
. This means if the Task
s are database-backed, all of them
except the first will be fetched into R memory for this. This behaviour may change in the future.
Only fields inherited from PipeOp
.
Only methods inherited from PipeOp
.
Other PipeOps:
PipeOpEnsemble
,
PipeOpImpute
,
PipeOpTaskPreproc
,
PipeOp
,
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_copy
,
mlr_pipeops_encodeimpact
,
mlr_pipeops_encodelmer
,
mlr_pipeops_encode
,
mlr_pipeops_filter
,
mlr_pipeops_fixfactors
,
mlr_pipeops_histbin
,
mlr_pipeops_ica
,
mlr_pipeops_imputehist
,
mlr_pipeops_imputemean
,
mlr_pipeops_imputemedian
,
mlr_pipeops_imputenewlvl
,
mlr_pipeops_imputesample
,
mlr_pipeops_kernelpca
,
mlr_pipeops_learner
,
mlr_pipeops_missind
,
mlr_pipeops_modelmatrix
,
mlr_pipeops_mutate
,
mlr_pipeops_nop
,
mlr_pipeops_pca
,
mlr_pipeops_quantilebin
,
mlr_pipeops_regravg
,
mlr_pipeops_removeconstants
,
mlr_pipeops_scalemaxabs
,
mlr_pipeops_scalerange
,
mlr_pipeops_scale
,
mlr_pipeops_select
,
mlr_pipeops_smote
,
mlr_pipeops_spatialsign
,
mlr_pipeops_subsample
,
mlr_pipeops_unbranch
,
mlr_pipeops_yeojohnson
,
mlr_pipeops
# NOT RUN {
library("mlr3")
task = tsk("iris")
gr = gunion(list(
po("nop"),
po("pca")
)) %>>% po("featureunion")
gr$train(task)
po = po("featureunion", innum = c("a", "b"))
po$train(list(task, task))
# }
Run the code above in your browser using DataLab