FSelectorDesignPoints
class that implements feature selection w.r.t. fixed
feature sets. We simply search over a set of feature subsets fully specified
by the user. The feature sets are evaluated in order as given.
In order to support general termination criteria and parallelization, we
evaluate feature sets in a batch-fashion of size batch_size
. Larger
batches mean we can parallelize more, smaller batches imply a more
fine-grained checking of termination criteria.
This FSelector can be instantiated via the dictionary
mlr_fselectors or with the associated sugar function fs()
:
mlr_fselectors$get("design_points") fs("design_points")
batch_size
integer(1)
Maximum number of configurations to try in a batch.
design
data.table::data.table
Design points to try in search, one per row.
mlr3fselect::FSelector
-> mlr3fselect::FSelectorFromOptimizer
-> FSelectorDesignPoints
new()
Creates a new instance of this R6 class.
FSelectorDesignPoints$new()
clone()
The objects of this class are cloneable with this method.
FSelectorDesignPoints$clone(deep = FALSE)
deep
Whether to make a deep clone.
library(mlr3) library(data.table) terminator = trm("evals", n_evals = 10) instance = FSelectInstanceSingleCrit$new( task = tsk("iris"), learner = lrn("classif.rpart"), resampling = rsmp("holdout"), measure = msr("classif.ce"), terminator = terminator ) design = data.table(Petal.Length = c(TRUE, FALSE), Petal.Width = c(TRUE, FALSE), Sepal.Length = c(FALSE, TRUE), Sepal.Width = c(FALSE, TRUE)) fselector = fs("design_points", design = design) # \donttest{ # Modifies the instance by reference fselector$optimize(instance)#> Petal.Length Petal.Width Sepal.Length Sepal.Width features #> 1: TRUE TRUE FALSE FALSE Petal.Length,Petal.Width #> classif.ce #> 1: 0.04# Returns best scoring evaluation instance$result#> Petal.Length Petal.Width Sepal.Length Sepal.Width features #> 1: TRUE TRUE FALSE FALSE Petal.Length,Petal.Width #> classif.ce #> 1: 0.04#> Petal.Length Petal.Width Sepal.Length Sepal.Width classif.ce #> 1: TRUE TRUE FALSE FALSE 0.04 #> 2: FALSE FALSE TRUE TRUE 0.18 #> uhash timestamp batch_nr #> 1: 7c755e80-951c-418f-8b53-f3de0fbd3479 2021-03-21 04:30:32 1 #> 2: fac37bc2-672f-4376-b0a2-f74adc679846 2021-03-21 04:30:32 2