Regresja liniowa z tidymodels

Modelowanie z tidymodels w R

David Svancer

Data Scientist

Dopasowanie modelu z parsnip

Dopasowanie modelu z parsnip

Modelowanie z tidymodels w R

Model regresji liniowej

Predykcja hwy przy użyciu cty jako predyktora  

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

Parametry modelu

  • $ \beta_{0} $ to wyraz wolny
  • $ \beta_{1} $ to nachylenie

 

Spalanie w trasie a spalanie w mieście

Modelowanie z tidymodels w R

Model regresji liniowej

Predykcja hwy przy użyciu cty jako predyktora  

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

Parametry modelu

  • $ \beta_{0} $ to wyraz wolny
  • $ \beta_{1} $ to nachylenie

 

Oszacowane parametry na podstawie danych treningowych

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

 

Dane mpg z linią regresji liniowej

Modelowanie z tidymodels w R

Formuły modeli

Formuły modeli w parsnip

  • Służą do przypisywania ról kolumnom
    • Zmienna wynikowa
    • Zmienne predyktorów

Postać ogólna

outcome ~ predictor_1 + predictor_2 + ...

Notacja skrócona

outcome ~ .

Predykcja hwy przy użyciu cty jako zmiennej predyktora

hwy ~ cty
Modelowanie z tidymodels w R

Pakiet parsnip

Zunifikowana składnia specyfikacji modeli w R

  1. Określ typ modelu

    • Regresja liniowa lub inny typ modelu
  2. Określ silnik

    • Różne silniki odpowiadają różnym pakietom R
  3. Określ tryb

    • Regresja lub klasyfikacja

Pakiet parsnip

Modelowanie z tidymodels w R

Dopasowanie modelu regresji liniowej

 

Definicja specyfikacji modelu w parsnip

  • linear_reg()

 

Przekazanie lm_model do funkcji fit()

  • Podaj formułę modelu
  • data używane do dopasowania modelu

 

lm_model <- linear_reg() %>%

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

 

lm_fit <- lm_model %>% 
  fit(hwy ~ cty, data = mpg_training)
Modelowanie z tidymodels w R

Uzyskiwanie oszacowanych parametrów

 

Funkcja tidy()

  • Przyjmuje wytrenowany obiekt modelu parsnip
  • Tworzy podsumowanie modelu w postaci tibble
  • Kolumny term i estimate zawierają oszacowane 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
Modelowanie z tidymodels w R

Tworzenie predykcji

Przekazanie wytrenowanego modelu parsnip do funkcji predict()

  • new_data określa zbiór danych do predykcji nowych wartości

 

Standardowe wyjście predict()

  1. Zwraca tibble
  2. Zachowuje kolejność wierszy jak w new_data
  3. Kolumna predykcji nosi nazwę .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
Modelowanie z tidymodels w R

Dodawanie predykcji do danych testowych

Funkcja bind_cols()

  • Łączy dwa lub więcej tibble wzdłuż osi kolumn
  • Przydatna do tworzenia tibble z wynikami modelu

Kroki

  • Wybierz hwy i cty z mpg_test
  • Przekaż do bind_cols() i dodaj kolumnę predykcji
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
Modelowanie z tidymodels w R

Czas na modelowanie!

Modelowanie z tidymodels w R

Preparing Video For Download...