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.