.fit_pre(), .fit_model(), and .fit_finalize() are internal workflow functions for partially fitting a workflow object. They are only exported for usage by the tuning package, tune, and the general user should never need to worry about them.

.fit_pre(workflow, data)

.fit_model(workflow, control)

.fit_finalize(workflow)

Arguments

workflow

A workflow

For .fit_pre(), this should be a fresh workflow.

For .fit_model(), this should be a workflow that has already been trained through .fit_pre().

For .fit_finalize(), this should be a workflow that has been through both .fit_pre() and .fit_model().

data

A data frame of predictors and outcomes to use when fitting the workflow

control

A control_workflow() object

Examples

library(parsnip) library(recipes) library(magrittr) model <- linear_reg() %>% set_engine("lm") wf_unfit <- workflow() %>% add_model(model) %>% add_formula(mpg ~ cyl + log(disp)) wf_fit_pre <- .fit_pre(wf_unfit, mtcars) wf_fit_model <- .fit_model(wf_fit_pre, control_workflow()) wf_fit <- .fit_finalize(wf_fit_model) # Notice that fitting through the model doesn't mark the # workflow as being "trained" wf_fit_model
#> ══ Workflow ════════════════════════════════════════════════════════════════════ #> Preprocessor: Formula #> Model: linear_reg() #> #> ── Preprocessor ──────────────────────────────────────────────────────────────── #> mpg ~ cyl + log(disp) #> #> ── Model ─────────────────────────────────────────────────────────────────────── #> #> Call: #> stats::lm(formula = ..y ~ ., data = data) #> #> Coefficients: #> (Intercept) cyl `log(disp)` #> 67.6674 -0.1755 -8.7971 #>
# Finalizing the workflow marks it as "trained" wf_fit
#> ══ Workflow [trained] ══════════════════════════════════════════════════════════ #> Preprocessor: Formula #> Model: linear_reg() #> #> ── Preprocessor ──────────────────────────────────────────────────────────────── #> mpg ~ cyl + log(disp) #> #> ── Model ─────────────────────────────────────────────────────────────────────── #> #> Call: #> stats::lm(formula = ..y ~ ., data = data) #> #> Coefficients: #> (Intercept) cyl `log(disp)` #> 67.6674 -0.1755 -8.7971 #>
# Which allows you to predict from it try(predict(wf_fit_model, mtcars))
#> Error : Workflow has not yet been trained. Do you need to call `fit()`?
predict(wf_fit, mtcars)
#> # A tibble: 32 x 1 #> .pred #> <dbl> #> 1 22.0 #> 2 22.0 #> 3 25.8 #> 4 17.8 #> 5 14.5 #> 6 19.0 #> 7 14.5 #> 8 23.1 #> 9 23.4 #> 10 21.6 #> # … with 22 more rows