Évaluer la performance du modèle

Modélisation avec tidymodels en R

David Svancer

Data Scientist

Entrée pour les fonctions yardstick

Toutes les fonctions de yardstick exigent un tibble avec les résultats du modèle

  • Colonne avec les valeurs réelles de la variable cible
    • hwy pour les données mpg
  • Colonne avec les prédictions du modèle
    • .pred
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élisation avec tidymodels en R

Erreur quadratique moyenne (RMSE)

La RMSE estime l'erreur moyenne de prédiction

  • Calculée avec la fonction rmse() de yardstick
    • Prend un tibble de résultats de modèle
    • truth est la colonne des valeurs réelles
    • estimate est la colonne des valeurs prévues
mpg_test_results %>% 
  rmse(truth = hwy, estimate = .pred)
# A tibble: 1 x 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 rmse    standard        1.93
Modélisation avec tidymodels en R

Métrique R au carré

Mesure la corrélation au carré entre valeurs réelles et prévues

  • Aussi appelée coefficient de détermination
  • Valeurs de 0 à 1
    • Si toutes les prédictions égalent les valeurs réelles, R au carré vaut 1
  • Calculée avec la fonction rsq() de yardstick
mpg_test_results %>% 
  rsq(truth = hwy, estimate = .pred)
# A tibble: 1 x 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 rsq     standard       0.904
Modélisation avec tidymodels en R

Graphiques R au carré

Visualisation de la métrique R au carré

  • Prédictions du modèle versus valeurs réelles
  • La ligne y = x
    • Représente un R au carré de 1
  • Sert à repérer d'éventuels problèmes de performance
    • Structures non linéaires
    • Zones où le modèle prédit mal

Diagramme R au carré du modèle mpg

Modélisation avec tidymodels en R

Tracer des graphiques R au carré

Créer des graphiques R au carré avec ggplot2

  • Tibble de résultats de modèle
  • geom_point()
  • geom_abline()
  • coord_obs_pred()
ggplot(mpg_test_results, aes(x = hwy, y = .pred)) +

geom_point() +
geom_abline(color = 'blue', linetype = 2) +
coord_obs_pred() + labs(title = 'R-Squared Plot', y = 'Predicted Highway MPG', x = 'Actual Highway MPG')

Diagramme R au carré du modèle mpg

Modélisation avec tidymodels en R

Rationaliser l'ajustement du modèle

La fonction last_fit()

  • Prend une spécification de modèle, une formule et un objet de partition des données
  • Effectue ce qui suit :
    1. Crée les ensembles d'entraînement et de test
    2. Ajuste le modèle aux données d'entraînement
    3. Calcule les métriques et prédictions sur les données de test
    4. Retourne un objet avec tous les résultats
lm_last_fit <- lm_model %>% 
  last_fit(hwy ~ cty, 
           split = mpg_split)
Modélisation avec tidymodels en R

Recueillir les métriques

La fonction collect_metrics()

  • Prend les résultats de last_fit()
    • Retourne un tibble avec les métriques de performance sur l'ensemble de test
  • Métriques par défaut pour un modèle de régression
    • RMSE
    • R au carré
lm_last_fit %>% 
  collect_metrics()
# A tibble: 2 x 3
  .metric .estimator .estimate
  <chr>   <chr>          <dbl>
1 rmse    standard       1.93 
2 rsq     standard       0.904
Modélisation avec tidymodels en R

Recueillir les prédictions

La fonction collect_predictions()

  • Prend les résultats de last_fit()
    • Retourne un tibble avec les prédictions sur l'ensemble de test
    • La colonne des prédictions s'appelle .pred
    • La variable cible et d'autres identifiants de lignes sont inclus
lm_last_fit %>% 
  collect_predictions()
# A tibble: 57 x 4
   id               .pred  .row   hwy
   <chr>            <dbl> <int> <int>
 1 train/test split  25.0     1    29
 2 train/test split  27.7     3    31
 3 train/test split  25.0     7    27
 4 train/test split  25.0     8    26
 5 train/test split  22.3     9    25
# ... with 47 more rows
Modélisation avec tidymodels en R

Évaluons quelques modèles !

Modélisation avec tidymodels en R

Preparing Video For Download...