if (requireNamespace("nnet", quietly = TRUE)) { library(tidypredict) library(nnet) library(dplyr) eval_code <- TRUE } else { eval_code <- FALSE } knitr::opts_chunk$set( collapse = TRUE, comment = "#>", eval = eval_code )
| Function |Works|
|---------------------------------------------------------------|-----|
|tidypredict_fit(), tidypredict_sql(), parse_model() | ✔ |
|tidypredict_to_column() | ✗ |
|tidypredict_test() | ✗ |
|tidypredict_interval(), tidypredict_sql_interval() | ✗ |
|parsnip | ✔ |
nnet::multinom() fits multinomial log-linear models. Because these models
predict one probability per outcome class, tidypredict_fit() returns a named
list of expressions, one for each class, rather than a single expression. The
expressions implement the softmax over the per-class linear predictors, with the
first level of the outcome acting as the reference class.
Since the output is a list, tidypredict_to_column() and tidypredict_test()
are not supported.
tidypredict_ functionslibrary(nnet) model <- multinom(Species ~ ., data = iris, trace = FALSE)
Create the R formulas, one per class
r
fit <- tidypredict_fit(model)
names(fit)
fit[["setosa"]]
Add the predictions to the original table ```r library(dplyr)
iris %>% mutate(!!!tidypredict_fit(model)) %>% glimpse() ```
predict() results
r
probs <- sapply(fit, \(f) rlang::eval_tidy(f, iris))
all.equal(unname(probs), unname(predict(model, iris, type = "probs")))parsnip fitted models are also supported by tidypredict:
library(parsnip) p_model <- multinom_reg() %>% set_engine("nnet") %>% fit(Species ~ ., data = iris)
tidypredict_fit(p_model)[["virginica"]]
Here is an example of the model spec:
pm <- parse_model(model) str(pm, 2)
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.