Nothing
test_that("tune function works with one measure", {
learner = lrn("classif.rpart", minsplit = to_tune(1, 10))
instance = tune(tuner = tnr("random_search", batch_size = 1), task = tsk("pima"), learner = learner, resampling = rsmp ("holdout"),
measures = msr("classif.ce"), term_evals = 2)
expect_class(instance, "TuningInstanceSingleCrit")
expect_data_table(instance$archive$data, nrows = 2)
expect_class(instance$terminator, "TerminatorEvals")
})
test_that("tune function works with multiple measures", {
learner = lrn("classif.rpart", minsplit = to_tune(1, 10))
instance = tune(tuner = tnr("random_search", batch_size = 1), task = tsk("pima"), learner = learner, resampling = rsmp ("holdout"),
measures = msrs(c("classif.ce", "classif.acc")), term_evals = 2)
expect_class(instance, "TuningInstanceMultiCrit")
expect_data_table(instance$archive$data, nrows = 2)
expect_class(instance$terminator, "TerminatorEvals")
})
test_that("tune function works without measure", {
learner = lrn("classif.rpart", minsplit = to_tune(1, 10))
instance = tune(tuner = tnr("random_search"), task = tsk("pima"),
learner = learner, resampling = rsmp ("holdout"), term_evals = 2)
expect_measure(instance$objective$measures[[1]])
})
test_that("tune interface is equal to TuningInstanceSingleCrit", {
tune_args = formalArgs(tune)
tune_args = tune_args[tune_args != "tuner" & tune_args != "method" & tune_args != "..."]
tune_args[tune_args == "measures"] = "measure"
instance_args = formalArgs(TuningInstanceSingleCrit$public_methods$initialize)
instance_args = c(instance_args, "term_evals", "term_time")
expect_set_equal(tune_args, instance_args)
})
test_that("tune interface is equal to TuningInstanceMultiCrit", {
tune_args = formalArgs(tune)
tune_args = tune_args[tune_args != "tuner" & tune_args != "method" & tune_args != "..."]
instance_args = formalArgs(TuningInstanceMultiCrit$public_methods$initialize)
instance_args = c(instance_args, "term_evals", "term_time")
expect_set_equal(tune_args, instance_args)
})
# evaluate_default ------------------------------------------------------------------
test_that("evaluate_default works", {
learner = lrn("classif.rpart", cp = to_tune(1e-3, 1))
instance = tune(
tuner = tnr("random_search"),
task = tsk("iris"),
learner = learner,
resampling = rsmp("cv", folds = 3),
measures = msr("classif.ce"),
term_evals = 2,
evaluate_default = TRUE
)
expect_equal(instance$archive$data$x_domain[[1]]$cp, 0.01)
expect_equal(instance$archive$data$cp[[1]], 0.01)
})
test_that("evaluate_default works with logscale", {
learner = lrn("classif.rpart", cp = to_tune(1e-3, 1, logscale = TRUE))
instance = tune(
tuner = tnr("random_search"),
task = tsk("iris"),
learner = learner,
resampling = rsmp("cv", folds = 3),
measures = msr("classif.ce"),
term_evals = 2,
evaluate_default = TRUE
)
expect_equal(instance$archive$data$x_domain[[1]]$cp, 0.01)
expect_equal(instance$archive$data$cp[[1]], log(0.01))
})
test_that("evaluate_default errors with trafo", {
learner = lrn("classif.rpart", cp = to_tune(p_dbl(-10, 0, trafo = function(x) 10^x)))
expect_error(tune(
tuner = tnr("random_search"),
task = tsk("iris"),
learner = learner,
resampling = rsmp("cv", folds = 3),
measures = msr("classif.ce"),
term_evals = 2,
evaluate_default = TRUE
), "Cannot evaluate default hyperparameter values")
})
test_that("evaluate_default works without transformation and with logscale", {
learner = lrn("classif.rpart",
cp = to_tune(1e-3, 1, logscale = TRUE),
minbucket = to_tune(1, 20))
instance = tune(
tuner = tnr("random_search"),
task = tsk("iris"),
learner = learner,
resampling = rsmp("cv", folds = 3),
measures = msr("classif.ce"),
term_evals = 2,
evaluate_default = TRUE
)
expect_equal(instance$archive$data$x_domain[[1]]$cp, 0.01)
expect_equal(instance$archive$data$cp[[1]], log(0.01))
expect_equal(instance$archive$data$x_domain[[1]]$minbucket, 7)
expect_equal(instance$archive$data$minbucket[[1]], 7)
})
test_that("evaluate_default errors without transformation and with logscale and trafo", {
learner = lrn("classif.rpart",
cp = to_tune(1e-3, 1, logscale = TRUE),
minbucket = to_tune(1, 20),
minsplit = to_tune(p_int(0, 3, trafo = function(x) 2^x)))
expect_error(tune(
tuner = tnr("random_search"),
task = tsk("iris"),
learner = learner,
resampling = rsmp("cv", folds = 3),
measures = msr("classif.ce"),
term_evals = 2,
evaluate_default = TRUE
), "Cannot evaluate default hyperparameter values")
})
test_that("evaluate_default errors with extra trafo", {
learner = lrn("classif.rpart")
search_space = ps(
cp = p_dbl(1e-3, 1, logscale = TRUE),
minbucket = p_int(1, 20),
minsplit = p_int(1, 20),
.extra_trafo = function(x, param_set) {
x$minsplit = 3
x
}
)
expect_error(tune(
tuner = tnr("random_search"),
task = tsk("iris"),
learner = learner,
resampling = rsmp("cv", folds = 3),
measures = msr("classif.ce"),
search_space = search_space,
term_evals = 2,
evaluate_default = TRUE
), "Cannot evaluate default hyperparameter values")
})
test_that("evaluate_default errors with old parameter set api", {
learner = lrn("classif.rpart")
search_space = ParamSet$new(list(
ParamDbl$new(id = "cp", lower = -10, upper = 0)
))
search_space$trafo = function(x, param_set) {
x$cp = 10^(x$cp)
x
}
expect_error(tune(
tuner = tnr("random_search"),
task = tsk("iris"),
learner = learner,
resampling = rsmp("cv", folds = 3),
measures = msr("classif.ce"),
search_space = search_space,
term_evals = 2,
evaluate_default = TRUE
), "Cannot evaluate default hyperparameter values")
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.