The function uses a Genetic Algorithm implementation to optimize the model hyperparameter configuration according to the chosen metric.
Usage
optimizeModel(
model,
hypers,
metric,
test = NULL,
pop = 20,
gen = 5,
env = NULL,
keep_best = 0.4,
keep_random = 0.2,
mutation_chance = 0.4,
interactive = TRUE,
progress = TRUE,
seed = NULL
)
Arguments
- model
SDMmodel or SDMmodelCV object.
- hypers
named list containing the values of the hyperparameters that should be tuned, see details.
- metric
character. The metric used to evaluate the models, possible values are: "auc", "tss" and "aicc".
- test
SWD object. Testing dataset used to evaluate the model, not used with aicc and SDMmodelCV objects.
- pop
numeric. Size of the population.
- gen
numeric. Number of generations.
- env
rast containing the environmental variables, used only with "aicc".
- keep_best
numeric. Percentage of the best models in the population to be retained during each iteration, expressed as decimal number.
- keep_random
numeric. Probability of retaining the excluded models during each iteration, expressed as decimal number.
- mutation_chance
numeric. Probability of mutation of the child models, expressed as decimal number.
- interactive
logical. If
FALSE
the interactive chart is not created.- progress
logical. If
TRUE
shows a progress bar.- seed
numeric. The value used to set the seed to have consistent results.
Value
SDMtune object.
Details
To know which hyperparameters can be tuned you can use the output
of the function getTunableArgs. Hyperparameters not included in the
hypers
argument take the value that they have in the passed model.
An interactive chart showing in real-time the steps performed by the algorithm is displayed in the Viewer pane.
Part of the code is inspired by this post.
See also
gridSearch and randomSearch.