Lineární regrese s tidymodels

Modeling with tidymodels in R

David Svancer

Data Scientist

Trénování modelu s balíčkem parsnip

Trénování modelu s balíčkem parsnip

Modeling with tidymodels in R

Model lineární regrese

Predikce hwy s využitím cty jako prediktoru  

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

Parametry modelu

  • $ \beta_{0} $ je intercept
  • $ \beta_{1} $ je sklon

 

Spotřeba paliva na dálnici versus ve městě

Modeling with tidymodels in R

Model lineární regrese

Predikce hwy s využitím cty jako prediktoru  

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

Parametry modelu

  • $ \beta_{0} $ je intercept
  • $ \beta_{1} $ je sklon

 

Odhadnuté parametry z trénovacích dat

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

 

Data mpg s přímkou lineární regrese

Modeling with tidymodels in R

Vzorce modelu

Vzorce modelu v parsnip

  • Slouží k přiřazení rolí sloupcům
    • Výstupní proměnná
    • Prediktory

Obecný tvar

outcome ~ predictor_1 + predictor_2 + ...

Zkrácená notace

outcome ~ .

Predikce hwy s využitím cty jako prediktoru

hwy ~ cty
Modeling with tidymodels in R

Balíček parsnip

Jednotná syntaxe pro specifikaci modelů v R

  1. Specifikujte typ modelu

    • Lineární regrese nebo jiný typ modelu
  2. Specifikujte engine

    • Různé enginy odpovídají různým R balíčkům
  3. Specifikujte mód

    • Regrese nebo klasifikace

Balíček Parsnip

Modeling with tidymodels in R

Trénování modelu lineární regrese

 

Definujte specifikaci modelu pomocí parsnip

  • linear_reg()

 

Předejte lm_model funkci fit()

  • Zadejte vzorec modelu
  • data pro trénování modelu

 

lm_model <- linear_reg() %>%

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

 

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

Získání odhadnutých parametrů

 

Funkce tidy()

  • Přijímá natrénovaný objekt modelu parsnip
  • Vytváří souhrnný tibble modelu
  • Sloupce term a estimate obsahují odhadnuté parametry

 

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
Modeling with tidymodels in R

Vytváření predikcí

Předejte natrénovaný model parsnip funkci predict()

  • new_data určuje dataset pro predikci nových hodnot

 

Standardizovaný výstup funkce predict()

  1. Vrací tibble
  2. Zachovává pořadí řádků jako v new_data
  3. Predikční sloupec se jmenuje .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
Modeling with tidymodels in R

Přidání predikcí k testovacím datům

Funkce bind_cols()

  • Spojuje dva nebo více tibbů podél osy sloupců
  • Vhodná pro vytvoření tibble s výsledky modelu

Postup

  • Vyberte hwy a cty z mpg_test
  • Předejte do bind_cols() a přidejte sloupec predikcí
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
Modeling with tidymodels in R

Pojďme modelovat!

Modeling with tidymodels in R

Preparing Video For Download...