The main goal of
tidypredict is to enable running predictions inside databases. It reads the model, extracts the components needed to calculate the prediction, and then creates an R formula that can be translated into SQL. In other words, it is able to parse a model such as this one:
model <- lm(mpg ~ wt + cyl, data = mtcars)
tidypredict can return a SQL statement that is ready to run inside the database. Because it uses
dplyr’s database interface, it works with several databases back-ends, such as MS SQL:
tidypredict from CRAN using:
Or install the development version using
devtools as follows:
# install.packages("remotes") # remotes::install_github("tidymodels/tidypredict")
tidypredict has only a few functions, and it is not expected that number to grow much. The main focus at this time is to add more models to support.
||Returns an R formula that calculates the prediction|
||Returns a SQL query based on the formula from
||Adds a new column using the formula from
||Creates a list spec based on the R model|
||Prepares an object to be recognized as a parsed model|
Instead of translating directly to a SQL statement,
tidypredict creates an R formula. That formula can then be used inside
dplyr. The overall workflow would be as illustrated in the image above, and described here:
tidypredictreads model, and creates a list object with the necessary components to run predictions
tidypredictbuilds an R formula based on the list object
dplyrevaluates the formula created by
dplyrtranslates the formula into a SQL statement, or any other interfaces.
tidypredict writes and reads a spec based on a model. Instead of simply writing the R formula directly, splitting the spec from the formula adds the following capabilities:
.rds- Specifically for cases when the model needs to be used for predictions in a Shiny app.
tidypredict. It also means, that the parsed model spec can become a good alternative to using PMML.
The following models are supported by
tidypredict supports models fitted via the
parsnip interface. The ones confirmed currently work in
tidy() function from broom works with linear models parsed via