new_rng_snapshots <- utils::compareVersion("3.6.0", as.character(getRversion())) > 0
# New (as of 4.3.0) a new option generates different snapshots
rankdeficient_version <- any(names(formals("predict.lm")) == "rankdeficient")
helper_objects_tune <- function() {
rec_tune_1 <-
recipes::recipe(mpg ~ ., data = mtcars) %>%
recipes::step_normalize(recipes::all_predictors()) %>%
recipes::step_pca(recipes::all_predictors(), num_comp = tune())
rec_no_tune_1 <-
recipes::recipe(mpg ~ ., data = mtcars) %>%
recipes::step_normalize(recipes::all_predictors())
lm_mod <- parsnip::linear_reg() %>% parsnip::set_engine("lm")
svm_mod <- parsnip::svm_rbf(mode = "regression", cost = tune()) %>%
parsnip::set_engine("kernlab")
list(
rec_tune_1 = rec_tune_1,
rec_no_tune_1 = rec_no_tune_1,
lm_mod = lm_mod,
svm_mod = svm_mod
)
}
# When not interactive, the cli progress bar is occasionally "reset" at random
# intervals throughout tuning, which means that intermediate counts may appear
# in snapshots. In an output like:
#
# > A | error: AHHhH
# There were issues with some computations A: x2
# There were issues with some computations A: x4
# There were issues with some computations A: x5
# There were issues with some computations A: x5
#
# ...we just want to see the unique issues, e.g.
#
# > A | error: AHHhH
catalog_lines <- function(lines) {
lines[grepl("^>", lines)]
}
# Make a new binding to prevent infinite recursion when the original is mocked.
initialize_catalog_ <- tune:::initialize_catalog
# Sets a new exit handler on `initialize_catalog()` that stores the summary
# of issues before it's cleared along with the progress bar. Together with
# the above, we can test the full catalog output.
redefer_initialize_catalog <- function(test_env) {
local({
function(control, env = rlang::caller_env()) {
initialize_catalog_(control, env)
withr::defer(
assign(
"catalog_summary_test",
tune:::tune_env$progress_env$catalog_summary,
test_env
),
envir = env,
priority = "first"
)
NULL
}
})
}
# ------------------------------------------------------------------------------
# Objects to test grid processing
if (rlang::is_installed("splines2")) {
rec_no_tune <-
recipes::recipe(mpg ~ ., data = mtcars) %>%
recipes::step_corr(all_predictors(), threshold = .1) %>%
recipes::step_spline_natural(disp, deg_free = 5)
rec_tune <-
recipes::recipe(mpg ~ ., data = mtcars) %>%
recipes::step_corr(all_predictors(), threshold = tune()) %>%
recipes::step_spline_natural(disp, deg_free = tune("disp_df"))
}
mod_no_tune <-
parsnip::rand_forest(mode = "regression")
mod_tune <-
parsnip::boost_tree(
trees = tune(),
min_n = tune(),
mode = "regression"
)
mod_tune_submodel <-
parsnip::boost_tree(
trees = tune(),
mode = "regression"
)
mod_tune_no_submodel <-
parsnip::rand_forest(
min_n = tune(),
mode = "regression"
)
if (rlang::is_installed("probably")) {
tlr_tune <-
tailor::tailor() %>%
tailor::adjust_numeric_range(lower_limit = tune())
tlr_tune_cal <-
tailor::tailor() %>%
tailor::adjust_numeric_calibration(method = "linear") %>%
tailor::adjust_numeric_range(lower_limit = tune())
tlr_no_tune <-
tailor::tailor() %>%
tailor::adjust_numeric_range(lower_limit = 0)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.