library(tidymodels)
data(ames)
tidymodels-ames-04
ds1
tidymodels
prediction
yacsda
statlearning
num
Aufgabe
Berechnen Sie ein lineares Modell mit tidymodels und zwar anhand des ames
Datensatzes.
Modellgleichung: Sale_Price ~ Gr_Liv_Area, data = ames
.
Berechnen Sie ein multiplikatives (exponenzielles) Modell.
Gesucht ist R-Quadrat als Maß für die Modellgüte im TEST-Sample.
Hinweise:
- Fixieren Sie die Zufallszahlen auf den Startwert 42.
- Verwenden Sie die Funktion
last_fit
.
Lösung
Multiplikatives Modell:
<-
ames %>%
ames mutate(Sale_Price = log10(Sale_Price)) %>%
select(Sale_Price, Gr_Liv_Area)
Nicht vergessen: AV-Transformation in beiden Samples!
Datensatz aufteilen:
set.seed(42)
<- initial_split(ames, prop = 0.80, strata = Sale_Price)
ames_split <- training(ames_split)
ames_train <- testing(ames_split) ames_test
Modell definieren:
<-
m1 linear_reg() # engine ist "lm" im Default
Rezept definieren:
<-
rec1 recipe(Sale_Price ~ Gr_Liv_Area, data = ames)
Vorhersagen mit last_fit
:
<- last_fit(object = m1, preprocessor = rec1, split = ames_split)
fit1_last fit1_last
# Resampling results
# Manual resampling
# A tibble: 1 × 6
splits id .metrics .notes .predictions .workflow
<list> <chr> <list> <list> <list> <list>
1 <split [2342/588]> train/test split <tibble> <tibble> <tibble> <workflow>
Wir bekommen ein Objekt, in dem Fit, Modellgüte, Vorhersagen und Hinweise enthalten sind.
Ohne Rezept lässt sich last_fit
nicht anwenden.
Vorhersagen:
%>% collect_predictions() %>%
fit1_last head()
# A tibble: 6 × 5
id .pred .row Sale_Price .config
<chr> <dbl> <int> <dbl> <chr>
1 train/test split 5.07 2 5.02 Preprocessor1_Model1
2 train/test split 5.18 3 5.24 Preprocessor1_Model1
3 train/test split 5.31 18 5.60 Preprocessor1_Model1
4 train/test split 5.11 26 5.15 Preprocessor1_Model1
5 train/test split 5.18 29 5.26 Preprocessor1_Model1
6 train/test split 5.10 30 4.98 Preprocessor1_Model1
Modellgüte im Test-Sample:
%>% collect_metrics() fit1_last
# A tibble: 2 × 4
.metric .estimator .estimate .config
<chr> <chr> <dbl> <chr>
1 rmse standard 0.118 Preprocessor1_Model1
2 rsq standard 0.517 Preprocessor1_Model1
R-Quadrat:
<- 0.517
sol sol
[1] 0.517
Categories:
- ds1
- tidymodels
- prediction
- yacsda
- statlearning
- num