## ----knitr-options, include=FALSE---------------------------------------------
knitr::opts_chunk$set(comment = "#>",
                      collapse = TRUE,
                      eval = FALSE,
                      fig.align = "center")

## ----load-data----------------------------------------------------------------
#  library(SDMtune)
#  library(zeallot)
#  
#  # Prepare data
#  files <- list.files(path = file.path(system.file(package = "dismo"), "ex"),
#                      pattern = "grd",
#                      full.names = TRUE)
#  
#  predictors <- terra::rast(files)
#  p_coords <- virtualSp$presence
#  a_coords <- virtualSp$absence
#  data <- prepareSWD(species = "Virtual species",
#                     p = p_coords,
#                     a = a_coords,
#                     env = predictors[[1:8]])
#  
#  # Split data in training and testing datasets
#  c(train, test) %<-% trainValTest(data,
#                                   test = 0.2,
#                                   seed = 25)
#  
#  cat("# Training  : ", nrow(train@data))
#  cat("\n# Testing   : ", nrow(test@data))
#  
#  # Create folds
#  folds <- randomFolds(train,
#                       k = 4,
#                       seed = 25)

## ----ann----------------------------------------------------------------------
#  set.seed(25)
#  model <- train("ANN",
#                 data = train,
#                 size = 10,
#                 folds = folds)
#  
#  model

## ----auc----------------------------------------------------------------------
#  auc(model)
#  auc(model, test = TRUE)

## ----get-tunable-args---------------------------------------------------------
#  getTunableArgs(model)

## ----optimize-model-----------------------------------------------------------
#  h <- list(size = 10:50,
#            decay = c(0.01, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5),
#            maxit = c(50, 100, 300, 500))
#  
#  om <- optimizeModel(model,
#                      hypers = h,
#                      metric = "auc",
#                      seed = 25)

## ----best-model---------------------------------------------------------------
#  best_model <- om@models[[1]]
#  om@results[1, ]

## ----evaluate-final-model, fig.align='center'---------------------------------
#  set.seed(25)
#  final_model <- train("ANN",
#                       data = train,
#                       size = om@results[1, 1],
#                       decay = om@results[1, 2],
#                       maxit = om@results[1, 4])
#  
#  plotROC(final_model,
#          test = test)