This is the predict()
method for a fit workflow object. The nice thing
about predicting from a workflow is that it will:
Preprocess new_data
using the preprocessing method specified when the
workflow was created and fit. This is accomplished using
hardhat::forge()
, which will apply any formula preprocessing or call
recipes::bake()
if a recipe was supplied.
Call parsnip::predict.model_fit()
for you using the underlying fit
parsnip model.
# S3 method for workflow predict(object, new_data, type = NULL, opts = list(), ...)
object | A workflow that has been fit by |
---|---|
new_data | A data frame containing the new predictors to preprocess and predict on |
type | A single character value or |
opts | A list of optional arguments to the underlying
predict function that will be used when |
... | Arguments to the underlying model's prediction
function cannot be passed here (see
|
A data frame of model predictions, with as many rows as new_data
has.
library(parsnip) library(recipes) library(magrittr) training <- mtcars[1:20,] testing <- mtcars[21:32,] model <- linear_reg() %>% set_engine("lm") workflow <- workflow() %>% add_model(model) recipe <- recipe(mpg ~ cyl + disp, training) %>% step_log(disp) workflow <- add_recipe(workflow, recipe) fit_workflow <- fit(workflow, training) # This will automatically `bake()` the recipe on `testing`, # applying the log step to `disp`, and then fit the regression. predict(fit_workflow, testing)#> # A tibble: 12 x 1 #> .pred #> <dbl> #> 1 25.4 #> 2 15.4 #> 3 15.8 #> 4 14.4 #> 5 13.2 #> 6 29.4 #> 7 25.4 #> 8 27.6 #> 9 14.4 #> 10 23.2 #> 11 15.9 #> 12 25.3