Feature Selection Wrapper

Feature selection wrappers can be found in the mlr3fselect packages. The goal is to find the best subset of features with respect to a performance measure in an iterative fashion.

Example Usage

Run a sequential feature selection on the Pima Indian Diabetes data set.

library(mlr3verse)

# retrieve task
task = tsk("pima")

# load learner
learner = lrn("classif.rpart")

# feature selection on the pima indians diabetes data set
instance = fselect(
  fselector = fs("sequential"),
  task = task,
  learner = learner,
  resampling = rsmp("holdout"),
  measure = msr("classif.ce")
)

# best performing feature subset
instance$result
      age glucose insulin   mass pedigree pregnant pressure triceps
   <lgcl>  <lgcl>  <lgcl> <lgcl>   <lgcl>   <lgcl>   <lgcl>  <lgcl>
1:   TRUE    TRUE    TRUE   TRUE     TRUE    FALSE    FALSE   FALSE
                            features n_features classif.ce
                              <list>      <int>      <num>
1: age,glucose,insulin,mass,pedigree          5  0.2070312
# subset the task and fit the final model
task$select(instance$result_feature_set)
learner$train(task)

print(learner)

── <LearnerClassifRpart> (classif.rpart): Classification Tree ──────────────────
• Model: rpart
• Parameters: xval=0
• Packages: mlr3 and rpart
• Predict Types: [response] and prob
• Feature Types: logical, integer, numeric, factor, and ordered
• Encapsulation: none (fallback: -)
• Properties: importance, missings, multiclass, selected_features, twoclass,
and weights
• Other settings: use_weights = 'use'