knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) library(tidypredict)
tidypredict splits the translation process in two. It first parses the model to extract the needed components to produce the prediction. And second, it uses the object with the parsed information to produce the R formula. Thanks to this two step process, tidypredict does not need to parse the model every time. tidypredict's functions also accept models that have already been parsed. Additionally, because the parsed model object is a list of basic variables, it is possible to save it in a file. Currently, the best file format is YAML.
For this article, we will use the following model:
model <- lm(mpg ~ (wt + disp) * cyl, data = mtcars)
The parse_model() function allows to run the first step manually. It will return an R list object which contains all of the needed information to produce a prediction calculation. The structure of the parsed model varies based on what kind of model is being processed. In general, it is consistent in what kind of information it expects from each model type. For example, in the example the lm() model object will return variables such as sigma2, which would not be used in other model types, such as decision trees.
library(tidypredict) parsed <- parse_model(model) str(parsed, 2)
Usually, we pass an R model object to functions such as: tidypredict_fit(), and tidypredict_sql(). These functions also accept a previously parsed model.
tidypredict_fit(parsed)
model_file <- tempfile(fileext = ".yml") tidypredict_save(parsed, model_file) loaded_model <- tidypredict_load(model_file)
Use tidypredict_save() to write the model to a YAML file.
tidypredict_save(parsed, "my_model.yml")
It accepts a fitted model as well, parsing it for you:
tidypredict_save(model, "my_model.yml")
Write the file with tidypredict_save() rather than calling yaml::write_yaml() yourself. yaml writes numbers with 7 significant digits by default, which is not enough to store a split threshold exactly. A tree model saved that way can send rows down a different branch than the model it came from, silently and with no warning.
In a new R session, read the file back with tidypredict_load().
library(tidypredict) loaded_model <- tidypredict_load("my_model.yml")
The preview of the file looks exactly as the preview of the original parsed model.
str(loaded_model, 2)
tidypredict is able to read the new R variable and use it to create the formula.
tidypredict_fit(loaded_model)
The same variable can be used with other tidypredict functions, such as tidypredict_sql()
tidypredict_sql(loaded_model, dbplyr::simulate_odbc())
broomThe parsed_model object integrates with tidy() from broom.
tidy(loaded_model)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.