Évaluer un modèle avec une séparation entraînement/test
Vous allez maintenant tester le modèle mpg_model sur les données de test, mpg_test.
Les fonctions rmse() et r_squared() pour calculer la RMSE et le R-squared sont fournies pour plus de commodité :
rmse(predcol, ycol)
r_squared(predcol, ycol)
où :
- predcol : les valeurs prédites
- ycol : la valeur réelle
Vous tracerez aussi les prédictions par rapport à la variable cible.
En général, les performances du modèle sont meilleures sur les données d’entraînement que sur les données de test (même si parfois l’échantillon de test « a de la chance »). Un léger écart de performance est acceptable ; si la performance sur l’entraînement est nettement meilleure, il y a un problème.
Les data frames mpg_train et mpg_test, ainsi que le modèle mpg_model, ont été préchargés, de même que les fonctions rmse() et r_squared().
Cet exercice fait partie du cours
<cours>Apprentissage supervisé en R : Régression</cours>Instructions de l’exercice
- Prédisez la consommation en ville à partir de
hwysur les donnéesmpg_train. Assignez les prédictions à la colonnepred. - Prédisez la consommation en ville à partir de
hwysur les donnéesmpg_test. Assignez les prédictions à la colonnepred. - Utilisez
rmse()pour évaluer la RMSE sur les ensembles de test et d’entraînement. Comparez. Les performances sont-elles similaires ? - Faites de même avec
r_squared(). Les performances sont-elles similaires ? - Utilisez
ggplot2pour tracer les prédictions en fonction dectysur les données detest.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Examine the objects that have been loaded
ls.str()
# predict cty from hwy for the training set
mpg_train$pred <- ___
# predict cty from hwy for the test set
mpg_test$pred <- ___
# Evaluate the rmse on both training and test data and print them
(rmse_train <- ___)
(rmse_test <- ___)
# Evaluate the r-squared on both training and test data.and print them
(rsq_train <- ___)
(rsq_test <- ___)
# Plot the predictions (on the x-axis) against the outcome (cty) on the test data
ggplot(___, aes(x = ___, y = ___)) +
geom_point() +
geom_abline()