View source: R/benchmark_grid.R
benchmark_grid | R Documentation |
Takes a lists of Task, a list of Learner and a list of Resampling to
generate a design in an expand.grid()
fashion (a.k.a. cross join or Cartesian product).
There are two modes of operation, depending on the flag paired
.
With paired
set to FALSE
(default), resampling strategies are not allowed to be instantiated, and instead will be instantiated per task internally.
The only exception to this rule applies if all tasks have exactly the same number of rows, and the resamplings are all instantiated for such tasks.
The grid will be generated based on the Cartesian product of tasks, learners, and resamplings.
Because the resamplings are instantiated on the tasks, reproducibility requires a seed to be set before
calling this function, as this process is stochastic.
With paired
set to TRUE
, tasks and resamplings are treated as pairs.
I.e., you must provide as many tasks as corresponding instantiated resamplings.
The grid will be generated based on the Cartesian product of learners and pairs.
benchmark_grid(
tasks,
learners,
resamplings,
param_values = NULL,
paired = FALSE
)
tasks |
(list of Task). |
learners |
(list of Learner). |
resamplings |
(list of Resampling). |
param_values |
( A list of lists of named lists, from outer to inner:
|
paired |
( |
(data.table::data.table()
) with the cross product of the input vectors.
Chapter in the mlr3book: https://mlr3book.mlr-org.com/chapters/chapter3/evaluation_and_benchmarking.html#sec-benchmarking
Package mlr3viz for some generic visualizations.
mlr3benchmark for post-hoc analysis of benchmark results.
Other benchmark:
BenchmarkResult
,
benchmark()
tasks = list(tsk("penguins"), tsk("sonar"))
learners = list(lrn("classif.featureless"), lrn("classif.rpart"))
resamplings = list(rsmp("cv"), rsmp("subsampling"))
# Set a seed to ensure reproducibility of the resampling instantiation
set.seed(123)
grid = benchmark_grid(tasks, learners, resamplings)
# the resamplings are now instantiated
head(grid$resampling[[1]]$instance)
print(grid)
## Not run:
benchmark(grid)
## End(Not run)
# paired
learner = lrn("classif.rpart")
task1 = tsk("penguins")
task2 = tsk("german_credit")
res1 = rsmp("holdout")
res2 = rsmp("holdout")
res1$instantiate(task1)
res2$instantiate(task2)
design = benchmark_grid(list(task1, task2), learner, list(res1, res2), paired = TRUE)
print(design)
# manual construction of the grid with data.table::CJ()
grid = data.table::CJ(task = tasks, learner = learners,
resampling = resamplings, sorted = FALSE)
# manual instantiation (not suited for a fair comparison of learners!)
Map(function(task, resampling) {
resampling$instantiate(task)
}, task = grid$task, resampling = grid$resampling)
## Not run:
benchmark(grid)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.