Spatial Block Cross validation implemented by the blockCV package.

Details

By default blockCV::spatialBlock() does not allow the creation of multiple repetitions. mlr3spatiotempcv adds support for this when using the range argument for fold creation. When supplying a vector of length(repeats) for argument range, these different settings will be used to create folds which differ among the repetitions.

Multiple repetitions are not possible when using the "row & cols" approach because the created folds will always be the same.

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 -> ResamplingRepeatedSpCVBlock

Public fields

blocks

sf | list of sf objects
Polygons (sf objects) as returned by blockCV which grouped observations into partitions.

Active bindings

iters

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

Methods

Public methods

Inherited methods

Method new()

Create an "coordinate-based" repeated resampling instance.

Usage

ResamplingRepeatedSpCVBlock$new(id = "repeated_spcv_block")

Arguments

id

character(1)
Identifier for the resampling strategy.


Method folds()

Translates iteration numbers to fold number.

Usage

ResamplingRepeatedSpCVBlock$folds(iters)

Arguments

iters

integer()
Iteration number.


Method repeats()

Translates iteration numbers to repetition number.

Usage

ResamplingRepeatedSpCVBlock$repeats(iters)

Arguments

iters

integer()
Iteration number.


Method instantiate()

Materializes fixed training and test splits for a given task.

Usage

ResamplingRepeatedSpCVBlock$instantiate(task)

Arguments

task

Task
A task to instantiate.


Method clone()

The objects of this class are cloneable with this method.

Usage

ResamplingRepeatedSpCVBlock$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

if (mlr3misc::require_namespaces(c("sf", "blockCV"), quietly = TRUE)) { library(mlr3) task = tsk("diplodia") # Instantiate Resampling rrcv = rsmp("repeated_spcv_block", folds = 3, repeats = 2, range = c(5000L, 10000L)) rrcv$instantiate(task) # Individual sets: rrcv$iters rrcv$folds(1:6) rrcv$repeats(1:6) # Individual sets: rrcv$train_set(1) rrcv$test_set(1) intersect(rrcv$train_set(1), rrcv$test_set(1)) # Internal storage: rrcv$instance # table }
#> row_id fold rep #> 1: 1 3 1 #> 2: 2 3 1 #> 3: 3 3 1 #> 4: 4 3 1 #> 5: 5 3 1 #> --- #> 1840: 918 1 2 #> 1841: 919 2 2 #> 1842: 920 1 2 #> 1843: 921 1 2 #> 1844: 922 1 2