Régression linéaire avec tidymodels

Modéliser avec tidymodels en R

David Svancer

Data Scientist

Ajuster un modèle avec parsnip

Ajustement de modèle avec parsnip

Modéliser avec tidymodels en R

Modèle de régression linéaire

Prédire hwy avec cty comme prédicteur  

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

Paramètres du modèle

  • $ \beta_{0} $ est l'ordonnée à l'origine
  • $ \beta_{1} $ est la pente

 

Consommation sur autoroute vs en ville

Modéliser avec tidymodels en R

Modèle de régression linéaire

Prédire hwy avec cty comme prédicteur  

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

Paramètres du modèle

  • $ \beta_{0} $ est l'ordonnée à l'origine
  • $ \beta_{1} $ est la pente

 

Paramètres estimés à partir des données d'entraînement

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

 

Données mpg avec droite de régression linéaire

Modéliser avec tidymodels en R

Formules de modèle

Formules de modèle dans parsnip

  • Utilisées pour définir les rôles des colonnes
    • Variable cible
    • Variables prédictives

Forme générale

outcome ~ predictor_1 + predictor_2 + ...

Notation abrégée

outcome ~ .

Prédire hwy avec cty comme variable prédictive

hwy ~ cty
Modéliser avec tidymodels en R

Le package parsnip

Syntaxe unifiée pour spécifier un modèle en R

  1. Indiquer le type de modèle

    • Régression linéaire ou autre type
  2. Indiquer le moteur

    • Les moteurs correspondent à des packages R sous-jacents différents
  3. Indiquer le mode

    • Régression ou classification

Package parsnip

Modéliser avec tidymodels en R

Ajuster une régression linéaire

 

Définir la spécification du modèle avec parsnip

  • linear_reg()

 

Passer lm_model à la fonction fit()

  • Indiquer la formule du modèle
  • data à utiliser pour l'ajustement

 

lm_model <- linear_reg() %>%

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

 

lm_fit <- lm_model %>% 
  fit(hwy ~ cty, data = mpg_training)
Modéliser avec tidymodels en R

Obtenir les paramètres estimés

 

La fonction tidy()

  • Prend un objet de modèle parsnip entraîné
  • Crée un tibble récapitulatif du modèle
  • Les colonnes term et estimate donnent les paramètres estimés

 

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
Modéliser avec tidymodels en R

Réaliser des prédictions

Passer le modèle parsnip entraîné à la fonction predict()

  • new_data indique l'ensemble sur lequel prédire

 

Sortie standardisée de predict()

  1. Renvoie un tibble
  2. Conserve l'ordre des lignes de new_data
  3. Nomme la colonne de prédiction .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
Modéliser avec tidymodels en R

Ajouter les prédictions aux données de test

La fonction bind_cols()

  • Combine deux tibbles ou plus sur l'axe colonnes
  • Utile pour créer un tibble de résultats de modèle

Étapes

  • Sélectionner hwy et cty depuis mpg_test
  • Passer à bind_cols() et ajouter la colonne de prédictions
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
Modéliser avec tidymodels en R

Modélisons !

Modéliser avec tidymodels en R

Preparing Video For Download...