Lineaire regressie met tidymodels

Modelleren met tidymodels in R

David Svancer

Data Scientist

Model fitten met parsnip

Model fitten met parsnip

Modelleren met tidymodels in R

Lineair regressiemodel

hwy voorspellen met cty als voorspeller  

$$hwy = \beta_{0} + \beta_{1} cty$$

Modelparameters

  • $ \beta_{0} $ is het intercept
  • $ \beta_{1} $ is de helling

 

Snelweg- vs stadsverbruik

Modelleren met tidymodels in R

Lineair regressiemodel

hwy voorspellen met cty als voorspeller  

$$hwy = \beta_{0} + \beta_{1} cty$$

Modelparameters

  • $ \beta_{0} $ is het intercept
  • $ \beta_{1} $ is de helling

 

Geschatte parameters uit trainingsdata

$$\small hwy = 0.77 + 1.35(cty)$$

 

Mpg-data met regressielijn

Modelleren met tidymodels in R

Modelformules

Modelformules in parsnip

  • Gebruikt om kolomrollen toe te wijzen
    • Doelvariabele
    • Voorspellers

Algemene vorm

outcome ~ predictor_1 + predictor_2 + ...

Verkorting

outcome ~ .

hwy voorspellen met cty als voorspeller

hwy ~ cty
Modelleren met tidymodels in R

Het parsnip-pakket

Eenduidige syntax voor modelspecificatie in R

  1. Specificeer het modeltype

    • Lineaire regressie of ander modeltype
  2. Kies de engine

    • Verschillende engines komen uit verschillende R-pakketten
  3. Stel de modus in

    • Regressie of classificatie

Parsnip-pakket

Modelleren met tidymodels in R

Een lineair regressiemodel fitten

 

Definieer modelspecificatie met parsnip

  • linear_reg()

 

Geef lm_model door aan fit()

  • Geef de modelformule op
  • data voor het fitten

 

lm_model <- linear_reg() %>%

set_engine('lm') %>%
set_mode('regression')

 

lm_fit <- lm_model %>% 
  fit(hwy ~ cty, data = mpg_training)
Modelleren met tidymodels in R

Geschatte parameters verkrijgen

 

De functie tidy()

  • Neemt een getraind parsnip-modelobject
  • Maakt een samenvattingstibble
  • Kolommen term en estimate geven de geschatte parameters

 

tidy(lm_fit)
# A tibble: 2 x 5
  term        estimate std.error statistic  p.value
  <chr>          <dbl>     <dbl>     <dbl>    <dbl>
1 (Intercept)    0.769    0.528       1.46 1.47e- 1
2 cty            1.35     0.0305     44.2  6.32e-97
Modelleren met tidymodels in R

Voorspellingen maken

Geef een getraind parsnip-model door aan predict()

  • new_data geeft de dataset voor voorspellingen

 

Gestandaardiseerde output van predict()

  1. Geeft een tibble
  2. Behoudt de rijvolgorde van new_data
  3. Noemt de voorspellingskolom .pred
hwy_predictions <- lm_fit %>% 
  predict(new_data = mpg_test)

hwy_predictions
# A tibble: 57 x 1
   .pred
   <dbl>
 1  25.0
 2  27.7
 3  25.0
 4  25.0
 5  22.3
# ... with 47 more rows
Modelleren met tidymodels in R

Voorspellingen toevoegen aan testdata

De functie bind_cols()

  • Voegt twee of meer tibbles kolomsgewijs samen
  • Handig om een resultaten-tibble te maken

Stappen

  • Selecteer hwy en cty uit mpg_test
  • Geef door aan bind_cols() en voeg de voorspellingen toe
mpg_test_results <- mpg_test %>%
  select(hwy, cty) %>%

bind_cols(hwy_predictions) mpg_test_results
# A tibble: 57 x 3
     hwy   cty .pred
   <int> <int> <dbl>
 1    29    18  25.0
 2    31    20  27.7
 3    27    18  25.0
 4    26    18  25.0
 5    25    16  22.3
# ... with 47 more rows
Modelleren met tidymodels in R

Laten we modelleren!

Modelleren met tidymodels in R

Preparing Video For Download...