CommencezCommencez gratuitement

Évaluer une procédure de modélisation au moyen d'une validation croisée en n volets

Dans cet exercice, vous utiliserez splitPlan, le plan de validation croisée à 3 volets de l'exercice précédent, pour produire des prédictions d'un modèle qui prédit mpg$cty à partir de mpg$hwy.

Si dframe est l'ensemble d'entraînement, une façon d'ajouter une colonne de prédictions de validation croisée au tableau est la suivante :

# Initialiser une colonne de la longueur appropriée
dframe$pred.cv <- 0 

# k est le nombre de volets
# splitPlan est le plan de validation croisée

for(i in 1:k) {
  # Obtenir le iᵉ découpage
  split <- splitPlan[[i]]

  # Construire un modèle sur les données d'entraînement 
  # de ce découpage 
  # (lm, dans ce cas-ci)
  model <- lm(fmla, data = dframe[split$train,])

  # produire des prédictions sur les 
  # données d'application de ce découpage
  dframe$pred.cv[split$app] <- predict(model, newdata = dframe[split$app,])
}

La validation croisée permet d'anticiper la performance d'un modèle entraîné sur l'ensemble des données lorsqu'il sera appliqué à de nouvelles données. Comme pour la séparation entraînement/test, pour une bonne procédure de modélisation, les performances en validation croisée et à l'entraînement devraient être proches.

Le tableau de données mpg, le plan de validation croisée splitPlan et la fonction rmse() ont été préchargés.

Cette activité fait partie du cours

Apprentissage supervisé en R : régression

Voir le cours

Instructions de l’exercice

  • Exécutez le plan de validation croisée à 3 volets à partir de splitPlan et placez les prédictions dans la colonne mpg$pred.cv.
    • Utilisez lm() et la formule cty ~ hwy.
  • Créez un modèle de régression linéaire sur toutes les données mpg (formule cty ~ hwy) et assignez les prédictions à mpg$pred.
  • Utilisez rmse() pour obtenir la racine de l'erreur quadratique moyenne des prédictions du modèle complet (mpg$pred). Rappel : rmse() prend deux arguments, les valeurs prédites et la variable cible réelle.
  • Obtenez la racine de l'erreur quadratique moyenne des prédictions de validation croisée. Les deux valeurs se ressemblent-elles?

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# mpg is available
summary(mpg)

# splitPlan is available
str(splitPlan)

# Run the 3-fold cross validation plan from splitPlan
k <- ___ # Number of folds
mpg$pred.cv <- 0 
for(i in ___) {
  split <- ___
  model <- lm(___, data = ___)
  mpg$pred.cv[___] <- predict(___, newdata = ___)
}

# Predict from a full model
mpg$pred <- ___(___(cty ~ hwy, data = mpg))

# Get the rmse of the full model's predictions
___(___, ___)

# Get the rmse of the cross-validation predictions
___(___, ___)
Modifier et exécuter le code