Feature Selection via Random Search
FSelectorRandomSearch class that implements a simple Random Search.
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("random_search")
fs("random_search")max_featuresinteger(1)
Maximum number of features. By default, number of features in mlr3::Task.
batch_sizeinteger(1)
Maximum number of feature sets to try in a batch.
mlr3fselect::FSelector -> FSelectorRandomSearch
new()
Creates a new instance of this R6 class.
FSelectorRandomSearch$new()
clone()
The objects of this class are cloneable with this method.
FSelectorRandomSearch$clone(deep = FALSE)
deepWhether to make a deep clone.
Bergstra J, Bengio Y (2012). “Random Search for Hyper-Parameter Optimization.” Journal of Machine Learning Research, 13(10), 281–305. https://jmlr.csail.mit.edu/papers/v13/bergstra12a.html.
library(mlr3)
terminator = trm("evals", n_evals = 5)
instance = FSelectInstanceSingleCrit$new(
task = tsk("iris"),
learner = lrn("classif.rpart"),
resampling = rsmp("holdout"),
measure = msr("classif.ce"),
terminator = terminator
)
fselector = fs("random_search")
# Modifies the instance by reference
fselector$optimize(instance)
# Returns best scoring evaluation
instance$result
# Allows access of data.table of full path of all evaluations
as.data.table(instance$archive)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.