CommencezCommencez gratuitement

Évaluer l'ajustement hors échantillon du modèle

Vous savez maintenant qu'il est plus pertinent d'examiner l'ajustement hors échantillon du modèle que l'ajustement en échantillon. Dans cet exercice, vous allez donc établir une mesure de justesse hors échantillon.

Avant cela, vous devez toutefois effectuer quelques étapes préparatoires. Reprenez defaultData. logitModelNew est déjà chargé dans votre environnement.

Gardez en tête que pour une analyse complète, vous devriez toujours comparer différents modèles candidats aussi (et surtout) à l'aide de données hors échantillon.

La justesse en échantillon — avec le seuil optimal de 0.3 — est de 0.7922901. Assurez-vous de comprendre s'il y a surapprentissage (overfitting).

Cette activité fait partie du cours

Machine Learning for Marketing Analytics in R

Voir le cours

Instructions de l’exercice

  • D'abord, divisez aléatoirement l'ensemble de données en jeux d'entraînement et de test. Le jeu d'entraînement doit contenir 2/3 de l'ensemble des données.

  • Ensuite, exécutez rapidement le modèle et nommez-le logitTrainNew. Utilisez la formule fournie.

  • Faites des prédictions sur le jeu de test, puis calculez la justesse hors échantillon à l'aide d'une matrice de confusion. Notez que SDMTools ne peut plus être téléchargé depuis CRAN. Sur votre ordinateur personnel, installez-le plutôt via remotes::install_version("SDMTools", "1.1-221.2").

  • Comparez la justesse hors échantillon à la valeur en échantillon indiquée ci-dessus.

Exercice interactif pratique

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

# Split data in train and test set
set.seed(534381) 
defaultData$isTrain <- rbinom(nrow(defaultData), 1, 0.66)
train <- subset(defaultData, ___ == 1)
test <- subset(defaultData, ___  == 0)

logitTrainNew <- glm(formulaLogit, family = binomial, data = ___) # Modeling
test$predNew <- predict(logitTrainNew, type = "response", newdata = ___) # Predictions

# Out-of-sample confusion matrix and accuracy
confMatrixModelNew <- confusion.matrix(___, ___, threshold = 0.3) 
sum(diag(confMatrixModelNew)) / sum(confMatrixModelNew) # Compare this value to the in-sample accuracy
Modifier et exécuter le code