Linjär regression med tidymodels

Modellering med tidymodels i R

David Svancer

Data Scientist

Modellanpassning med parsnip

Modellanpassning med parsnip

Modellering med tidymodels i R

Linjär regressionsmodell

Predikterar hwy med cty som prediktor  

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

Modellparametrar

  • $ \beta_{0} $ är intercept
  • $ \beta_{1} $ är lutning

 

Motorvägsförbrukning jämfört med stadsförbrukning

Modellering med tidymodels i R

Linjär regressionsmodell

Predikterar hwy med cty som prediktor  

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

Modellparametrar

  • $ \beta_{0} $ är intercept
  • $ \beta_{1} $ är lutning

 

Skattade parametrar från träningsdata

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

 

Mpg-data med linjär regressionslinje

Modellering med tidymodels i R

Modellformler

Modellformler i parsnip

  • Används för att tilldela kolumnroller
    • Utfallsvariabel
    • Prediktorvariabler

Allmänt format

outcome ~ predictor_1 + predictor_2 + ...

Förkortad notation

outcome ~ .

Predikterar hwy med cty som prediktorvariabel

hwy ~ cty
Modellering med tidymodels i R

Paketet parsnip

Enhetlig syntax för modellspecifikation i R

  1. Ange modelltyp

    • Linjär regression eller annan modelltyp
  2. Ange motor

    • Olika motorer motsvarar olika underliggande R-paket
  3. Ange läge

    • Antingen regression eller klassificering

Parsnip-paketet

Modellering med tidymodels i R

Anpassa en linjär regressionsmodell

 

Definiera modellspecifikation med parsnip

  • linear_reg()

 

Skicka lm_model till funktionen fit()

  • Ange modellformel
  • data som används för modellanpassning

 

lm_model <- linear_reg() %>%

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

 

lm_fit <- lm_model %>% 
  fit(hwy ~ cty, data = mpg_training)
Modellering med tidymodels i R

Hämta de skattade parametrarna

 

Funktionen tidy()

  • Tar ett tränat parsnip-modellobjekt
  • Skapar en sammanfattande tibble för modellen
  • Kolumnerna term och estimate innehåller skattade parametrar

 

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
Modellering med tidymodels i R

Göra prediktioner

Skicka ett tränat parsnip-modellobjekt till funktionen predict()

  • new_data anger den datamängd som nya värden ska predikteras för

 

Standardiserade utdata från predict()

  1. Returnerar en tibble
  2. Behåller raderna i samma ordning som new_data
  3. Namnger prediktorkolumnen .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
Modellering med tidymodels i R

Lägga till prediktioner i testdata

Funktionen bind_cols()

  • Kombinerar två eller fler tibbles längs kolumnaxeln
  • Praktisk för att skapa en tibble med modellresultat

Steg

  • Välj hwy och cty från mpg_test
  • Skicka till bind_cols() och lägg till prediktorkolumnen
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
Modellering med tidymodels i R

Nu kör vi en övning!

Modellering med tidymodels i R

Preparing Video For Download...