model <-linear_reg() %>%set_engine("lm") %>%fit(mpg ~ ., mtcars)
Why tidymodels?ββConsistency
With glmnet:
model <-glmnet(as.matrix(mtcars[2:11]), mtcars$mpg )
With tidymodels:
model <-linear_reg() %>%set_engine("glmnet") %>%fit(mpg ~ ., mtcars)
Why tidymodels?ββConsistency
With h2o:
h2o.init()as.h2o(mtcars, "cars")model <-h2o.glm(x =colnames(mtcars[2:11]), y ="mpg","cars" )
With tidymodels:
model <-linear_reg() %>%set_engine("h2o") %>%fit(mpg ~ ., mtcars)
Why tidymodels?ββConsistency
Why tidymodels?ββSafety1
Why tidymodels?ββSafety1
Overfitting leads to analysts believing models are more performant than they actually are.
A 2023 review found data leakage to be βa widespread failure mode in machine-learning (ML)-based science.β
Implementations of the same machine learning model give differing results, resulting in irreproducibility of modeling results.
Why tidymodels?ββSafety
Some of the resistance Iβve seen to tidymodels comes from a place of βThis makes it too easy- youβre not thinking carefully about what the code is doing!β But I think this is getting it backwards.
By removing the burden of writing procedural logic, I get to focus on scientific and statistical questions about my data and model.
collect_metrics(lm_res)#> # A tibble: 2 Γ 6#> .metric .estimator mean n std_err .config #> <chr> <chr> <dbl> <int> <dbl> <chr> #> 1 rmse standard 2.39 1 NA Preprocessor1_Model1#> 2 rsq standard 0.881 1 NA Preprocessor1_Model1