The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
| Function | Works |
|---|---|
tidypredict_fit(), tidypredict_sql(),
parse_model() |
✔ |
tidypredict_to_column() |
✔ |
tidypredict_test() |
✔ |
tidypredict_interval(),
tidypredict_sql_interval() |
✗ |
parsnip |
✔ |
Only linear (vanilladot) kernels are supported. With a
linear kernel the decision function collapses to a weighted sum of the
predictors, which is exactly the shape tidypredict can
write out.
The parser multiplies the support vectors by their coefficients to
recover one weight per predictor, undoes the scaling ksvm()
applied while fitting, and adds the bias term.
pm <- parse_model(model)
str(pm, 2)
#> List of 2
#> $ general:List of 4
#> ..$ model : chr "ksvm"
#> ..$ version: num 2
#> ..$ type : chr "regression"
#> ..$ is_glm : num 0
#> $ terms :List of 4
#> ..$ :List of 4
#> ..$ :List of 4
#> ..$ :List of 4
#> ..$ :List of 4
#> - attr(*, "class")= chr [1:3] "parsed_model" "pm_regression" "list"The parsed model is transformed into a dplyr, a.k.a.
Tidy Eval, formula.
tidypredict_fit(model)
#> 35.9868850984331 + (wt * -3.52132505992066) + (hp * -0.0344671444570161) +
#> (disp * 0.000700491865519295)From there, the Tidy Eval formula can be used anywhere it can be
evaluated. tidypredict provides three paths:
dplyr,
mutate(mtcars, !! tidypredict_fit(model))tidypredict_to_column(model) to add it to a piped
command settidypredict_sql(model, con) to retrieve the SQL
statementmtcars %>%
tidypredict_to_column(model) %>%
glimpse()
#> Rows: 32
#> Columns: 12
#> $ mpg <dbl> 21.0, 21.0, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19.2, 17.8,…
#> $ cyl <dbl> 6, 6, 4, 6, 8, 6, 8, 4, 4, 6, 6, 8, 8, 8, 8, 8, 8, 4, 4, 4, 4, 8,…
#> $ disp <dbl> 160.0, 160.0, 108.0, 258.0, 360.0, 225.0, 360.0, 146.7, 140.8, 16…
#> $ hp <dbl> 110, 110, 93, 110, 175, 105, 245, 62, 95, 123, 123, 180, 180, 180…
#> $ drat <dbl> 3.90, 3.90, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.92, 3.92,…
#> $ wt <dbl> 2.620, 2.875, 2.320, 3.215, 3.440, 3.460, 3.570, 3.190, 3.150, 3.…
#> $ qsec <dbl> 16.46, 17.02, 18.61, 19.44, 17.02, 20.22, 15.84, 20.00, 22.90, 18…
#> $ vs <dbl> 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0,…
#> $ am <dbl> 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0,…
#> $ gear <dbl> 4, 4, 4, 3, 3, 3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 3,…
#> $ carb <dbl> 4, 4, 1, 1, 2, 1, 4, 2, 2, 4, 4, 3, 3, 3, 4, 4, 4, 1, 2, 1, 1, 2,…
#> $ fit <dbl> 23.081706, 22.183768, 24.687620, 21.055166, 18.093954, 20.341661,…Binary classification models are supported, and return the
probability of the second outcome level. ksvm() turns its
decision values into probabilities with a fitted sigmoid, so the model
has to be fitted with prob.model = TRUE for that sigmoid to
exist.
df <- mtcars
df$vs <- factor(df$vs)
model_class <- ksvm(
vs ~ wt + mpg,
data = df,
kernel = "vanilladot",
type = "C-svc",
prob.model = TRUE
)
#> Setting default kernel parameters
tidypredict_fit(model_class)
#> 1/(1 + exp(-(-2.97721401151508 + (wt * -0.368454175940519) +
#> (mpg * 0.200709025600128))))tidypredict also supports ksvm model
objects fitted via the parsnip package, using
svm_linear() with the "kernlab" engine.
vanilladot kernel is supported.
Non-linear kernels cannot be written as a single formula over the
columns.prob.model = TRUE.ksvm(x, y), because ksvm() mangles them with
make.names() and keeps no record of the originals. See the
supported models article for details.These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.