Skip to contents

Splits data by clustering in the feature space. See the upstream implementation at blockCV::envBlock() and Valavi et al. (2018) for further information.

Details

Useful when the dataset is supposed to be split on environmental information which is present in features. The method allows for a combination of multiple features for clustering.

The input of raster images directly as in blockCV::envBlock() is not supported. See mlr3spatial and its raster DataBackends for such support in mlr3.

Parameters

  • folds (integer(1))
    Number of folds.

  • features (character())
    The features to use for clustering.

  • repeats (integer(1))
    Number of repeats.

References

Valavi R, Elith J, Lahoz-Monfort JJ, Guillera-Arroita G (2018). “blockCV: an R package for generating spatially or environmentally separated folds for k-fold cross-validation of species distribution models.” bioRxiv. doi:10.1101/357798 .

Super class

mlr3::Resampling -> ResamplingRepeatedSpCVEnv

Active bindings

iters

integer(1)
Returns the number of resampling iterations, depending on the values stored in the param_set.

Methods

Inherited methods


Method new()

Create an "Environmental Block" repeated resampling instance.

For a list of available arguments, please see blockCV::envBlock.

Usage

ResamplingRepeatedSpCVEnv$new(id = "repeated_spcv_env")

Arguments

id

character(1)
Identifier for the resampling strategy.


Method folds()

Translates iteration numbers to fold number.

Usage

ResamplingRepeatedSpCVEnv$folds(iters)

Arguments

iters

integer()
Iteration number.


Method repeats()

Translates iteration numbers to repetition number.

Usage

ResamplingRepeatedSpCVEnv$repeats(iters)

Arguments

iters

integer()
Iteration number.


Method instantiate()

Materializes fixed training and test splits for a given task.

Usage

ResamplingRepeatedSpCVEnv$instantiate(task)

Arguments

task

Task
A task to instantiate.


Method clone()

The objects of this class are cloneable with this method.

Usage

ResamplingRepeatedSpCVEnv$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# \donttest{
if (mlr3misc::require_namespaces(c("sf", "blockCV"), quietly = TRUE)) {
  library(mlr3)
  task = tsk("ecuador")

  # Instantiate Resampling
  rrcv = rsmp("repeated_spcv_env", folds = 4, repeats = 2)
  rrcv$instantiate(task)

  # Individual sets:
  rrcv$train_set(1)
  rrcv$test_set(1)
  intersect(rrcv$train_set(1), rrcv$test_set(1))

  # Internal storage:
  rrcv$instance
}
#>       row_id rep fold
#>    1:      1   1    3
#>    2:      2   1    3
#>    3:      3   1    2
#>    4:      4   1    3
#>    5:      5   1    3
#>   ---                
#> 1498:    747   2    3
#> 1499:    748   2    3
#> 1500:    749   2    3
#> 1501:    750   2    3
#> 1502:    751   2    3
# }