CommencerCommencez gratuitement

Évaluer une procédure de modélisation avec une validation croisée en n plis

Dans cet exercice, vous allez utiliser splitPlan, le plan de validation croisée en 3 plis de l’exercice précédent, pour produire des prédictions d’un modèle qui prévoit 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 à la bonne longueur
dframe$pred.cv <- 0 

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

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

  # Entraîner un modèle sur les données d’entraînement
  # de ce découpage
  # (lm, dans ce cas)
  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 prédit les performances d’un modèle entraîné sur l’ensemble des données lorsqu’il sera appliqué à de nouvelles données. Comme avec la séparation entraînement/test, pour une bonne procédure de modélisation, les performances en validation croisée et les performances à l’entraînement doivent être proches.

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

Cet exercice fait partie du cours

<cours>Apprentissage supervisé en R : Régression</cours>
Voir le cours

Instructions de l’exercice

  • Exécutez le plan de validation croisée en 3 plis à 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 l’ensemble des 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.
  • Calculez la racine de l’erreur quadratique moyenne des prédictions de validation croisée. Les deux valeurs sont-elles à peu près équivalentes ?

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