library(tidymodels)regr-tree02
statlearning
trees
tidymodels
mtcars
string
Aufgabe
Berechnen Sie einfaches Prognosemodell auf Basis eines Entscheidungsbaums!
Modellformel: am ~ . (Datensatz mtcars)
Berichten Sie die Modellgüte (ROC-AUC).
Hinweise:
- Tunen Sie alle Parameter (die der Engine anbietet).
- Führen Sie eine \(v=2\)-fache Kreuzvalidierung durch (weil die Stichprobe so klein ist).
- Beachten Sie die üblichen Hinweise.
Lösung
Setup
library(tidymodels)
data(mtcars)
library(tictoc) # ZeitmessungFür Klassifikation verlangt Tidymodels eine nominale AV, keine numerische:
mtcars <-
mtcars %>%
mutate(am = factor(am))Daten teilen
d_split <- initial_split(mtcars)
d_train <- training(d_split)
d_test <- testing(d_split)Modell(e)
mod_tree <-
decision_tree(mode = "classification",
cost_complexity = tune(),
tree_depth = tune(),
min_n = tune())Rezept(e)
rec1 <-
recipe(am ~ ., data = d_train)Resampling
rsmpl <- vfold_cv(d_train, v = 2)Workflow
wf1 <-
workflow() %>%
add_recipe(rec1) %>%
add_model(mod_tree)Tuning/Fitting
fit1 <-
tune_grid(object = wf1,
metrics = metric_set(roc_auc),
resamples = rsmpl)Bester Kandidat
autoplot(fit1)
show_best(fit1)| cost_complexity | tree_depth | min_n | .metric | .estimator | mean | n | std_err | .config |
|---|---|---|---|---|---|---|---|---|
| 0e+00 | 5 | 18 | roc_auc | binary | 0.8333333 | 2 | 0 | pre0_mod01_post0 |
| 0e+00 | 13 | 23 | roc_auc | binary | 0.8333333 | 2 | 0 | pre0_mod02_post0 |
| 0e+00 | 4 | 35 | roc_auc | binary | 0.8333333 | 2 | 0 | pre0_mod03_post0 |
| 1e-06 | 1 | 10 | roc_auc | binary | 0.8333333 | 2 | 0 | pre0_mod05_post0 |
| 1e-05 | 11 | 40 | roc_auc | binary | 0.8333333 | 2 | 0 | pre0_mod06_post0 |
Finalisieren
wf1_finalized <-
wf1 %>%
finalize_workflow(select_best(fit1))Last Fit
final_fit <-
last_fit(object = wf1_finalized, d_split)
collect_metrics(final_fit)| .metric | .estimator | .estimate | .config |
|---|---|---|---|
| accuracy | binary | 0.7500000 | pre0_mod0_post0 |
| roc_auc | binary | 0.7500000 | pre0_mod0_post0 |
| brier_class | binary | 0.2509766 | pre0_mod0_post0 |
Categories:
- statlearning
- trees
- tidymodels
- string