Évaluer les performances d'un modèle

Modéliser avec tidymodels en R

David Svancer

Data Scientist

Entrées des fonctions yardstick

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

  • Colonne des valeurs réelles de la variable cible
    • hwy pour les données mpg
  • Colonne des 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éliser 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édites
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éliser avec tidymodels en R

Métrique R²

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

  • Aussi appelé coefficient de détermination
  • Vaut entre 0 et 1
    • Si toutes les prédictions égalent les valeurs réelles, R² vaut 1
  • Calculé 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éliser avec tidymodels en R

Graphiques R²

Visualiser la métrique R²

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

Courbe R² du modèle mpg

Modéliser avec tidymodels en R

Tracer des graphiques R²

Créer des graphiques R² 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')

Courbe R² du modèle mpg

Modéliser 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 découpe des données
  • Réalise les opérations suivantes :
    1. Crée les jeux d'entraînement et de test
    2. Ajuste le modèle sur l'entraînement
    3. Calcule métriques et prédictions sur le test
    4. Retourne un objet avec tous les résultats
lm_last_fit <- lm_model %>% 
  last_fit(hwy ~ cty, 
           split = mpg_split)
Modéliser avec tidymodels en R

Récupérer les métriques

La fonction collect_metrics()

  • Prend les résultats de last_fit()
    • Retourne un tibble avec les métriques de performance sur le jeu de test
  • Métriques par défaut pour la régression
    • RMSE
    • R²
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éliser avec tidymodels en R

Récupérer les prédictions

La fonction collect_predictions()

  • Prend les résultats de last_fit()
    • Retourne un tibble avec les prédictions du jeu de test
    • La colonne des prédictions s'appelle .pred
    • Inclut la variable cible et d'éventuels identifiants de lignes
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éliser avec tidymodels en R

Évaluons quelques modèles !

Modéliser avec tidymodels en R

Preparing Video For Download...