# test an implemented subclass tuner by running a couple of standard tests
# on a simple example
# term_evals: how we configure the Terminator
# real_evals: how many evals we really expect (as the optim might early stop)
# returns: tune_result and instance
test_tuner = function(key, ..., n_dim = 1L, term_evals = 2L, real_evals = term_evals) {
search_space = if (n_dim == 1) {
ps(
cp = p_dbl(lower = 0.1, upper = 0.3)
)
} else if (n_dim == 2) {
ps(
cp = p_dbl(lower = 0.1, upper = 0.3),
minsplit = p_int(lower = 1, upper = 9)
)
}
term = trm("evals", n_evals = term_evals)
inst = TuningInstanceBatchSingleCrit$new(tsk("iris"), lrn("classif.rpart"), rsmp("holdout"), msr("classif.ce"), term, search_space)
tuner = tnr(key, ...)
expect_tuner(tuner)
expect_man_exists(tuner$man)
tuner$optimize(inst)
archive = inst$archive
expect_data_table(archive$data, nrows = real_evals)
expect_equal(inst$archive$n_evals, real_evals)
x_opt = inst$result_x_domain
y_opt = inst$result_y
expect_list(x_opt, len = n_dim)
if (n_dim == 1) {
expect_named(x_opt, "cp")
} else {
expect_named(x_opt, c("cp", "minsplit"))
}
expect_numeric(y_opt, len = 1L)
expect_named(y_opt, "classif.ce")
list(tuner = tuner, inst = inst)
}
# test an implemented subclass tuner by running a test with dependent params
# returns: tune_result and instance
test_tuner_dependencies = function(key, ..., term_evals = 2L) {
term = trm("evals", n_evals = term_evals)
ll = LearnerRegrDepParams$new()
inst = TuningInstanceBatchSingleCrit$new(tsk("mtcars"), ll, rsmp("holdout"), msr("regr.mse"), term, ll$param_set)
tuner = tnr(key, ...)
expect_tuner(tuner)
tuner$optimize(inst)
archive = inst$archive
expect_data_table(archive$data, nrows = term_evals)
expect_equal(inst$archive$n_evals, term_evals)
x_opt = inst$result_x_domain
y_opt = inst$result_y
expect_list(x_opt)
expect_names(names(x_opt), subset.of = c("xx", "yy", "cp"))
expect_numeric(y_opt, len = 1L)
expect_numeric(y_opt, len = 1L)
expect_names(names(y_opt), identical.to = "regr.mse")
list(tuner = tuner, inst = inst)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.