translate()
will translate a model specification into a code
object that is specific to a particular engine (e.g. R package).
It translates generic parameters to their counterparts.
Arguments
- x
A model specification.
- ...
Not currently used.
- engine
The computational engine for the model (see
?set_engine
).
Details
translate()
produces a template call that lacks the specific
argument values (such as data
, etc). These are filled in once
fit()
is called with the specifics of the data for the model.
The call may also include tune()
arguments if these are in
the specification. To handle the tune()
arguments, you need to use the
tune package. For more information
see https://www.tidymodels.org/start/tuning/
It does contain the resolved argument names that are specific to the model fitting function/engine.
This function can be useful when you need to understand how
parsnip
goes from a generic model specific to a model fitting
function.
Note: this function is used internally and users should only use it to understand what the underlying syntax would be. It should not be used to modify the model specification.
Examples
lm_spec <- linear_reg(penalty = 0.01)
# `penalty` is tranlsated to `lambda`
translate(lm_spec, engine = "glmnet")
#> Linear Regression Model Specification (regression)
#>
#> Main Arguments:
#> penalty = 0.01
#>
#> Computational engine: glmnet
#>
#> Model fit template:
#> glmnet::glmnet(x = missing_arg(), y = missing_arg(), weights = missing_arg(),
#> family = "gaussian")
# `penalty` not applicable for this model.
translate(lm_spec, engine = "lm")
#> Linear Regression Model Specification (regression)
#>
#> Main Arguments:
#> penalty = 0.01
#>
#> Computational engine: lm
#>
#> Model fit template:
#> stats::lm(formula = missing_arg(), data = missing_arg(), weights = missing_arg())
# `penalty` is tranlsated to `reg_param`
translate(lm_spec, engine = "spark")
#> Linear Regression Model Specification (regression)
#>
#> Main Arguments:
#> penalty = 0.01
#>
#> Computational engine: spark
#>
#> Model fit template:
#> sparklyr::ml_linear_regression(x = missing_arg(), formula = missing_arg(),
#> weights = missing_arg(), reg_param = 0.01)
# with a placeholder for an unknown argument value:
translate(linear_reg(penalty = tune(), mixture = tune()), engine = "glmnet")
#> Linear Regression Model Specification (regression)
#>
#> Main Arguments:
#> penalty = tune()
#> mixture = tune()
#>
#> Computational engine: glmnet
#>
#> Model fit template:
#> glmnet::glmnet(x = missing_arg(), y = missing_arg(), weights = missing_arg(),
#> alpha = tune(), family = "gaussian")