tidymodels-ames-04

ds1
tidymodels
prediction
yacsda
statlearning
num
Published

May 17, 2023

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

library(tidymodels)
data(ames)

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)
ames_split <- initial_split(ames, prop = 0.80, strata = Sale_Price)
ames_train <- training(ames_split)
ames_test  <-  testing(ames_split)

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:

fit1_last <- last_fit(object = m1, preprocessor = rec1, split = ames_split)  
fit1_last

Wir bekommen ein Objekt, in dem Fit, Modellgüte, Vorhersagen und Hinweise enthalten sind.

Ohne Rezept lässt sich last_fit nicht anwenden.

Vorhersagen:

fit1_last %>% collect_predictions() %>% 
  head()

Modellgüte im Test-Sample:

fit1_last %>% collect_metrics()

R-Quadrat:

sol <- 0.517
sol

Categories:

  • ds1
  • tidymodels
  • prediction
  • yacsda
  • statlearning
  • num