Skip to contents

Function to conduct nested resampling.

Usage

tune_nested(
  method,
  task,
  learner,
  inner_resampling,
  outer_resampling,
  measure = NULL,
  term_evals = NULL,
  term_time = NULL,
  search_space = NULL,
  ...
)

Arguments

method

(character(1))
Key to retrieve tuner from mlr_tuners dictionary.

task

(mlr3::Task)
Task to operate on.

learner

(mlr3::Learner)
Learner to tune.

inner_resampling

(mlr3::Resampling)
Resampling used for the inner loop.

outer_resampling

mlr3::Resampling)
Resampling used for the outer loop.

measure

(mlr3::Measure)
Measure to optimize. If NULL, default measure is used.

term_evals

(integer(1))
Number of allowed evaluations.

term_time

(integer(1))
Maximum allowed time in seconds.

search_space

(paradox::ParamSet)
Hyperparameter search space. If NULL (default), the search space is constructed from the TuneToken of the learner's parameter set (learner$param_set).

...

(named list())
Named arguments to be set as parameters of the tuner.

Examples

# Nested resampling on Palmer Penguins data set
rr = tune_nested(
  method = "random_search",
  task = tsk("penguins"),
  learner = lrn("classif.rpart", cp = to_tune(1e-04, 1e-1, logscale = TRUE)),
  inner_resampling = rsmp ("holdout"),
  outer_resampling = rsmp("cv", folds = 2),
  measure = msr("classif.ce"),
  term_evals = 2,
  batch_size = 2)

# Performance scores estimated on the outer resampling
rr$score()
#>                 task  task_id         learner          learner_id
#> 1: <TaskClassif[50]> penguins <AutoTuner[46]> classif.rpart.tuned
#> 2: <TaskClassif[50]> penguins <AutoTuner[46]> classif.rpart.tuned
#>            resampling resampling_id iteration              prediction
#> 1: <ResamplingCV[20]>            cv         1 <PredictionClassif[20]>
#> 2: <ResamplingCV[20]>            cv         2 <PredictionClassif[20]>
#>    classif.ce
#> 1: 0.06395349
#> 2: 0.06976744

# Unbiased performance of the final model trained on the full data set
rr$aggregate()
#> classif.ce 
#> 0.06686047