update_model() now use
... to separate the required arguments from the optional arguments, forcing optional arguments to be named. This change was made to make it easier for us to extend these functions with new arguments in the future.
Internally cleaned up remaining usage of soft-deprecated
workflow() has gained new
spec arguments for adding a preprocessor (such as a recipe or formula) and a parsnip model specification directly to a workflow upon creation. In many cases, this can reduce the lines of code required to construct a complete workflow (#108).
extract_*() functions have been added that supersede the existing
pull_*() functions. This is part of a larger move across the tidymodels packages towards a family of generic
extract_*() functions. The
pull_*() functions have been soft-deprecated, and will eventually be removed (#106).
add_variables() now allows for specifying a bundle of model terms through
add_variables(variables = ), supplying a pre-created set of variables with the new
workflow_variables() helper. This is useful for supplying a set of variables programmatically (#92).
broom::glance() methods for trained workflow objects (#76).
Added support for butchering a workflow using
Updated to testthat 3.0.0.
.fit_finalize()for internal usage by the tune package.
add_variables() for specifying model terms using tidyselect expressions with no extra preprocessing. For example:
wf <- workflow() %>% add_variables(y, c(var1, start_with("x_"))) %>% add_model(spec_lm)
One benefit of specifying terms in this way over the formula method is to avoid preprocessing from
model.matrix(), which might strip the class of your predictor columns (as it does with Date columns) (#34).
add_formula(), workflows now uses model-specific information from parsnip to decide whether to expand factors via dummy encoding (
n - 1levels), one-hot encoding (
nlevels), or no expansion at all. This should result in more intuitive behavior when working with models that don’t require dummy variables. For example, if a parsnip
rand_forest()model is used with a ranger engine, dummy variables will not be created, because ranger can handle factors directly (#51, #53).