gridSearch: Grid Search

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/gridSearch.R

Description

Given a set of possible hyperparameter values, the function trains models with all the possible combinations of hyperparameters.

Usage

1
gridSearch(model, hypers, metric, test = NULL, env = NULL, save_models = TRUE)

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, default is NULL.

env

stack containing the environmental variables, used only with "aicc", default is NULL.

save_models

logical, if FALSE the models are not saved and the output contains only a data frame with the metric values for each hyperparameter combination. Default is TRUE, set it to FALSE when there are many combinations to avoid R crashing for memory overload.

Details

Value

SDMtune object.

Author(s)

Sergio Vignali

See Also

randomSearch and optimizeModel.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Acquire environmental variables
files <- list.files(path = file.path(system.file(package = "dismo"), "ex"),
                    pattern = "grd", full.names = TRUE)
predictors <- raster::stack(files)

# Prepare presence and background locations
p_coords <- virtualSp$presence
bg_coords <- virtualSp$background

# Create SWD object
data <- prepareSWD(species = "Virtual species", p = p_coords, a = bg_coords,
                   env = predictors, categorical = "biome")

# Split presence locations in training (80%) and testing (20%) datasets
datasets <- trainValTest(data, test = 0.2, only_presence = TRUE)
train <- datasets[[1]]
test <- datasets[[2]]

# Train a model
model <- train(method = "Maxnet", data = train, fc = "l")

# Define the hyperparameters to test
h <- list(reg = 1:2, fc = c("lqp", "lqph"))

# Run the function using the AUC as metric
output <- gridSearch(model, hypers = h, metric = "auc", test = test)
output@results
output@models
# Order rusults by highest test AUC
head(output@results[order(-output@results$test_AUC), ])

# Run the function using the AICc as metric and without saving the trained
# models, helpful when numerous hyperparameters are tested to avoid memory
# problems
output <- gridSearch(model, hypers = h, metric = "aicc", env = predictors,
                     save_models = FALSE)
output@results

SDMtune documentation built on July 17, 2021, 9:06 a.m.