library(tidymodels)
library(tidyverse)
library(tictoc)bike03
statlearning
tidymodels
num
Aufgabe
Kann man die Anzahl gerade verliehener Fahrräder eines entsprechenden Anbieters anhand der Temperatur vorhersagen?
In dieser Übung untersuchen wir diese Frage.
Sie können die Daten von der Webseite der UCI herunterladen.
Wir beziehen uns auf den Datensatz day.
Berechnen Sie einen Entscheidungsbaum mit der Anzahl der aktuell vermieteten Räder als AV und der aktuellen Temperatur als UV!
Tunen Sie den Cp-Parameter des Baumes; lassen Sie sich 20 Tuningparameter vorschlagen.
Geben Sie den MSE an!
Lösung
d <- read.csv("/Users/sebastiansaueruser/datasets/Bike-Sharing-Dataset/day.csv")glimpse(d)Data split
set.seed(42)
d_split <- initial_split(d, strata = cnt)
d_train <- training(d_split)
d_test <- testing(d_split)Define recipe
rec1 <-
recipe(cnt ~ temp, data = d)Define model
m1 <-
decision_tree(cost_complexity = tune(),
mode = "regression")Tuning grid
grid <-
grid_regular(cost_complexity(), levels = 20)
gridAlternativ:
grid <-
grid_regular(extract_parameter_set_dials(m1), levels = 20)
gridDefine Resamples
rsmpl <- vfold_cv(d_train)Workflow
wf1 <-
workflow() %>%
add_model(m1) %>%
add_recipe(rec1) Fit
tic()
fit1 <- tune_grid(
object = wf1,
resamples = rsmpl)
toc()
fit1Bester Kandidat
show_best(fit1)wf1_best <-
wf1 %>%
finalize_workflow(parameters = select_best(fit1))Last Fit
fit_testsample <- last_fit(wf1_best, d_split)Model performance (metrics) in test set
fit_testsample %>% collect_metrics()MSE <- fit_testsample %>% collect_metrics() %>% pluck(3, 1)
MSESolution:
Categories:
- statlearning
- tidymodels
- num