Skip to contents

Splits data using leave-one-observation-out. This is identical to cross-validation with the number of folds set to the number of observations.

If this resampling is combined with the grouping features of tasks, it is possible to create custom splits based on an arbitrary factor variable, see the examples.

Dictionary

This Resampling can be instantiated via the dictionary mlr_resamplings or with the associated sugar function rsmp():

mlr_resamplings$get("loo")
rsmp("loo")

References

Bischl B, Mersmann O, Trautmann H, Weihs C (2012). “Resampling Methods for Meta-Model Validation with Recommendations for Evolutionary Computation.” Evolutionary Computation, 20(2), 249--275. doi:10.1162/evco_a_00069 .

See also

Super class

mlr3::Resampling -> ResamplingLOO

Active bindings

iters

(integer(1))
Returns the number of resampling iterations which is the number of rows of the task provided to instantiate. Is NA if the resampling has not been instantiated.

Methods

Inherited methods


Method new()

Creates a new instance of this R6 class.

Usage


Method clone()

The objects of this class are cloneable with this method.

Usage

ResamplingLOO$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# Create a task with 10 observations
task = tsk("penguins")
task$filter(1:10)

# Instantiate Resampling
loo = rsmp("loo")
loo$instantiate(task)

# Individual sets:
loo$train_set(1)
#> [1]  1  2  9  6  4 10  8  7  3
loo$test_set(1)
#> [1] 5

# Disjunct sets:
intersect(loo$train_set(1), loo$test_set(1))
#> integer(0)

# Internal storage:
loo$instance # vector
#>  [1]  5  1  2  9  6  4 10  8  7  3

# Combine with group feature of tasks:
task = tsk("penguins")
task$set_col_roles("island", add_to = "group")
loo$instantiate(task)
loo$iters # one fold for each level of "island"
#> [1] 3