Remove constant features from a mlr3::Task. For each feature, calculates the ratio of features which differ from their mode value. All features which a ratio below a settable threshold are removed from the task. Missing values can be ignored or treated as a regular value distinct from non-missing values.
R6Class
object inheriting from PipeOpTaskPreprocSimple
/PipeOpTaskPreproc
/PipeOp
.
PipeOpRemoveConstants$new(id = "removeconstants")
id
:: character(1)
Identifier of the resulting object, defaulting to "removeconstants"
.
param_vals
:: named list
List of hyperparameter settings, overwriting the hyperparameter settings that would otherwise be set during construction. Default list()
.
$state
is a named list
with the $state
elements inherited from PipeOpTaskPreproc
, as well as:
features
:: character
Names of features that are being kept. Features of types that the Filter
can not operate on are always being kept.
The parameters are the parameters inherited from the PipeOpTaskPreproc
, as well as:
ratio
:: numeric(1)
Ratio of values which must be different from the mode value in order to keep a feature in the task.
Default is 0, which means only constant features with exactly one observed level are removed.
rel_tol
:: numeric(1)
Relative tolerance within which to consider a numeric feature constant. Set to 0 to disregard relative tolerance. Default is 1e-8
.
abs_tol
:: numeric(1)
Absolute tolerance within which to consider a numeric feature constant. Set to 0 to disregard absolute tolerance. Default is 1e-8
.
na_ignore
:: logical(1)
If TRUE
, the ratio is calculated after removing all missing values first.
Default is FALSE
.
Fields inherited from PipeOpTaskPreproc
/PipeOp
.
Methods inherited from PipeOpTaskPreprocSimple
/PipeOpTaskPreproc
/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_featureunion
,
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_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")
data = data.table::data.table(y = runif(10), a = 1:10, b = rep(1, 10), c = rep(1:2, each = 5))
task = TaskRegr$new("example", data, target = "y")
po = po("removeconstants")
po$train(list(task = task))[[1]]$data()
po$state
# }
Run the code above in your browser using DataLab