
Transform Columns by Constructing a Model Matrix
Source:R/PipeOpModelMatrix.R
mlr_pipeops_modelmatrix.RdTransforms columns using a given formula using the stats::model.matrix() function.
Format
R6Class object inheriting from PipeOpTaskPreprocSimple/PipeOpTaskPreproc/PipeOp.
Construction
id::character(1)
Identifier of resulting object, default"modelmatrix".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 PipeOpTaskPreproc.
The output is the input Task with transformed columns according to the used formula.
State
The $state is a named list with the $state elements inherited from PipeOpTaskPreproc.
Parameters
The parameters are the parameters inherited from PipeOpTaskPreproc, as well as:
formula::formula
Formula to use. Higher order interactions can be created using constructs like~. ^ 2. By default, an(Intercept)column of all1s is created, which can be avoided by adding0 +to the term. Seemodel.matrix().
Internals
Uses the model.matrix() function.
Fields
Only fields inherited from PipeOp.
Methods
Only methods inherited from PipeOpTaskPreprocSimple/PipeOpTaskPreproc/PipeOp.
See also
https://mlr-org.com/pipeops.html
Other PipeOps:
PipeOp,
PipeOpEncodePL,
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_encodeplquantiles,
mlr_pipeops_encodepltree,
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_multiplicityexply,
mlr_pipeops_multiplicityimply,
mlr_pipeops_mutate,
mlr_pipeops_nearmiss,
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_tomek,
mlr_pipeops_tunethreshold,
mlr_pipeops_unbranch,
mlr_pipeops_updatetarget,
mlr_pipeops_vtreat,
mlr_pipeops_yeojohnson
Examples
library("mlr3")
task = tsk("iris")
pop = po("modelmatrix", formula = ~ . ^ 2)
task$data()
#> Species Petal.Length Petal.Width Sepal.Length Sepal.Width
#> <fctr> <num> <num> <num> <num>
#> 1: setosa 1.4 0.2 5.1 3.5
#> 2: setosa 1.4 0.2 4.9 3.0
#> 3: setosa 1.3 0.2 4.7 3.2
#> 4: setosa 1.5 0.2 4.6 3.1
#> 5: setosa 1.4 0.2 5.0 3.6
#> ---
#> 146: virginica 5.2 2.3 6.7 3.0
#> 147: virginica 5.0 1.9 6.3 2.5
#> 148: virginica 5.2 2.0 6.5 3.0
#> 149: virginica 5.4 2.3 6.2 3.4
#> 150: virginica 5.1 1.8 5.9 3.0
pop$train(list(task))[[1]]$data()
#> Species (Intercept) Petal.Length Petal.Width Sepal.Length Sepal.Width
#> <fctr> <num> <num> <num> <num> <num>
#> 1: setosa 1 1.4 0.2 5.1 3.5
#> 2: setosa 1 1.4 0.2 4.9 3.0
#> 3: setosa 1 1.3 0.2 4.7 3.2
#> 4: setosa 1 1.5 0.2 4.6 3.1
#> 5: setosa 1 1.4 0.2 5.0 3.6
#> ---
#> 146: virginica 1 5.2 2.3 6.7 3.0
#> 147: virginica 1 5.0 1.9 6.3 2.5
#> 148: virginica 1 5.2 2.0 6.5 3.0
#> 149: virginica 1 5.4 2.3 6.2 3.4
#> 150: virginica 1 5.1 1.8 5.9 3.0
#> Petal.Length:Petal.Width Petal.Length:Sepal.Length
#> <num> <num>
#> 1: 0.28 7.14
#> 2: 0.28 6.86
#> 3: 0.26 6.11
#> 4: 0.30 6.90
#> 5: 0.28 7.00
#> ---
#> 146: 11.96 34.84
#> 147: 9.50 31.50
#> 148: 10.40 33.80
#> 149: 12.42 33.48
#> 150: 9.18 30.09
#> Petal.Length:Sepal.Width Petal.Width:Sepal.Length Petal.Width:Sepal.Width
#> <num> <num> <num>
#> 1: 4.90 1.02 0.70
#> 2: 4.20 0.98 0.60
#> 3: 4.16 0.94 0.64
#> 4: 4.65 0.92 0.62
#> 5: 5.04 1.00 0.72
#> ---
#> 146: 15.60 15.41 6.90
#> 147: 12.50 11.97 4.75
#> 148: 15.60 13.00 6.00
#> 149: 18.36 14.26 7.82
#> 150: 15.30 10.62 5.40
#> Sepal.Length:Sepal.Width
#> <num>
#> 1: 17.85
#> 2: 14.70
#> 3: 15.04
#> 4: 14.26
#> 5: 18.00
#> ---
#> 146: 20.10
#> 147: 15.75
#> 148: 19.50
#> 149: 21.08
#> 150: 17.70
pop$param_set$values$formula = ~ 0 + . ^ 2
pop$train(list(task))[[1]]$data()
#> Species Petal.Length Petal.Width Sepal.Length Sepal.Width
#> <fctr> <num> <num> <num> <num>
#> 1: setosa 1.4 0.2 5.1 3.5
#> 2: setosa 1.4 0.2 4.9 3.0
#> 3: setosa 1.3 0.2 4.7 3.2
#> 4: setosa 1.5 0.2 4.6 3.1
#> 5: setosa 1.4 0.2 5.0 3.6
#> ---
#> 146: virginica 5.2 2.3 6.7 3.0
#> 147: virginica 5.0 1.9 6.3 2.5
#> 148: virginica 5.2 2.0 6.5 3.0
#> 149: virginica 5.4 2.3 6.2 3.4
#> 150: virginica 5.1 1.8 5.9 3.0
#> Petal.Length:Petal.Width Petal.Length:Sepal.Length
#> <num> <num>
#> 1: 0.28 7.14
#> 2: 0.28 6.86
#> 3: 0.26 6.11
#> 4: 0.30 6.90
#> 5: 0.28 7.00
#> ---
#> 146: 11.96 34.84
#> 147: 9.50 31.50
#> 148: 10.40 33.80
#> 149: 12.42 33.48
#> 150: 9.18 30.09
#> Petal.Length:Sepal.Width Petal.Width:Sepal.Length Petal.Width:Sepal.Width
#> <num> <num> <num>
#> 1: 4.90 1.02 0.70
#> 2: 4.20 0.98 0.60
#> 3: 4.16 0.94 0.64
#> 4: 4.65 0.92 0.62
#> 5: 5.04 1.00 0.72
#> ---
#> 146: 15.60 15.41 6.90
#> 147: 12.50 11.97 4.75
#> 148: 15.60 13.00 6.00
#> 149: 18.36 14.26 7.82
#> 150: 15.30 10.62 5.40
#> Sepal.Length:Sepal.Width
#> <num>
#> 1: 17.85
#> 2: 14.70
#> 3: 15.04
#> 4: 14.26
#> 5: 18.00
#> ---
#> 146: 20.10
#> 147: 15.75
#> 148: 19.50
#> 149: 21.08
#> 150: 17.70