| dict_filtors_surtour {miesmuschel} | R Documentation |
Tournament Surrogate Model Filtering
Description
Performs tournament surrogate model filtering. A surrogate model is used, as described in the parent class FiltorSurrogate.
Algorithm
Selects individuals from a tournament by taking the top per_tournament individuals, according to surrogate_selector and
as predicted by surrogate_learner, from a sample of tournament_size(i), where tournament_size(1) is given by
tournament_size, tournament_size(ceiling(n_filter / per_tournament)) is given by tournament_size_last, and
tournament_size(i) for i between these values is linearly interpolated on a log scale.
Configuration Parameters
FiltorSurrogateProgressive's configuration parameters are the hyperparameters of the FiltorSurrogate base class, as well as:
-
filter.per_tournament::integer(1)
Number of individuals to select from each tournament. Ifper_tournamentis not a divider ofn_filter, then the last tournament selects a random subset ofn_filter %% per_tournamentindividuals out of the topper_tournamentindividuals. Initialized to 1. -
filter.tournament_size::numeric(1)
Tournament size used for filtering. Iftournament_size_lastis not given, alln_filterindividuals are selected in batches ofper_tournamentfrom tournaments of this size. If it is given, then the actual tournament size is interpolated betweentournament_sizeandtournament_size_laston a logarithmic scale. Tournaments with tournament size belowper_tournamentselectper_tournamentindividuals without tournament, i.e. no filtering. Initialized to 1. -
filter.tournament_size_last::numeric(1)
Tournament size used for the last tournament, see description oftournament_size. Defaults totournament_sizewhen not given, i.e. all tournaments have the same size.
Supported Operand Types
See FiltorSurrogate about supported operand types.
Dictionary
This Filtor can be created with the short access form ftr()
(ftrs() to get a list), or through the the dictionary
dict_filtors in the following way:
# preferred:
ftr("surtour", <surrogate_learner> [, <surrogate_selector>])
ftrs("surtour", <surrogate_learner> [, <surrogate_selector>]) # takes vector IDs, returns list of Filtors
# long form:
dict_filtors$get("surtour", <surrogate_learner> [, <surrogate_selector>])
Super classes
miesmuschel::MiesOperator -> miesmuschel::Filtor -> miesmuschel::FiltorSurrogate -> FiltorSurrogateTournament
Methods
Public methods
Inherited methods
Method new()
Initialize the FiltorSurrogateTournament.
Usage
FiltorSurrogateTournament$new( surrogate_learner, surrogate_selector = SelectorBest$new() )
Arguments
surrogate_learner(
mlr3::LearnerRegr)
Regression learner for the surrogate model filtering algorithm.
The$surrogate_learnerfield will reflect this value.surrogate_learner(
mlr3::LearnerRegr)
Regression learner for the surrogate model filtering algorithm.
The$surrogate_learnerfield will reflect this value.surrogate_selector(
Selector)Selectorfor the surrogate model filtering algorithm.
The$surrogate_selectorfield will reflect this value.surrogate_selector(
Selector)Selectorfor the surrogate model filtering algorithm.
The$surrogate_selectorfield will reflect this value.
Method clone()
The objects of this class are cloneable with this method.
Usage
FiltorSurrogateTournament$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
See Also
Other filtors:
Filtor,
FiltorSurrogate,
dict_filtors_maybe,
dict_filtors_null,
dict_filtors_proxy,
dict_filtors_surprog
Examples
library("mlr3")
library("mlr3learners")
fp = ftr("surtour", lrn("regr.lm"), filter.tournament_size = 2)
p = ps(x = p_dbl(-5, 5))
known_data = data.frame(x = 1:5)
fitnesses = 1:5
new_data = data.frame(x = c(2.5, 4.5))
fp$prime(p)
fp$needed_input(1)
fp$operate(new_data, known_data, fitnesses, 1)