Resample a Learner on a Task
Runs a resampling (possibly in parallel):
Repeatedly apply Learner learner on a training set of Task task to train a model,
then use the trained model to predict observations of a test set.
Training and test sets are defined by the Resampling resampling.
resample( task, learner, resampling, store_models = FALSE, store_backends = TRUE )
task |
(Task). |
learner |
(Learner). |
resampling |
(Resampling). |
store_models |
( |
store_backends |
( |
This function can be parallelized with the future package.
One job is one resampling iteration, and all jobs are send to an apply function
from future.apply in a single batch.
To select a parallel backend, use future::plan().
This function supports progress bars via the package progressr.
Simply wrap the function in progressr::with_progress() to enable them.
We recommend to use package progress as backend; enable with
progressr::handlers("progress").
To suppress output and reduce verbosity, you can lower the log from the
default level "info" to "warn":
lgr::get_logger("mlr3")$set_threshold("warn")To get additional log output for debugging, increase the log level to "debug"
or "trace":
lgr::get_logger("mlr3")$set_threshold("debug")To log to a file or a data base, see the documentation of lgr::lgr-package.
The fitted models are discarded after the predictions have been computed in order to reduce memory consumption.
If you need access to the models for later analysis, set store_models to TRUE.
task = tsk("penguins")
learner = lrn("classif.rpart")
resampling = rsmp("cv")
# Explicitly instantiate the resampling for this task for reproduciblity
set.seed(123)
resampling$instantiate(task)
rr = resample(task, learner, resampling)
print(rr)
# Retrieve performance
rr$score(msr("classif.ce"))
rr$aggregate(msr("classif.ce"))
# merged prediction objects of all resampling iterations
pred = rr$prediction()
pred$confusion
# Repeat resampling with featureless learner
rr_featureless = resample(task, lrn("classif.featureless"), resampling)
# Convert results to BenchmarkResult, then combine them
bmr1 = as_benchmark_result(rr)
bmr2 = as_benchmark_result(rr_featureless)
print(bmr1$combine(bmr2))Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.