CommencezCommencez gratuitement

Un dernier arbre avec plus d'options

Dans cet exercice, vous allez utiliser quelques derniers arguments abordés dans la vidéo. Certaines spécifications de la fonction rpart.control() seront modifiées, et des poids seront inclus à l'aide de l'argument weights dans rpart(). Le vecteur case_weights a été préparé pour vous et est chargé dans votre espace de travail. Ce vecteur contient des poids de 1 pour les non-défaillances dans l'ensemble d'entraînement, et des poids de 3 pour les défaillances dans les ensembles d'entraînement. En attribuant des poids plus élevés aux défaillances, le modèle accordera plus d'importance à bien les classifier.

Cette activité fait partie du cours

Modélisation du risque de crédit en R

Voir le cours

Instructions de l’exercice

  • Fixez la graine aléatoire à 345.
  • Complétez le code fourni en passant case_weights à l'argument weights de rpart().
  • Changez le nombre minimal de divisions permises dans un nœud à 5, et le nombre minimal d'observations permises dans les feuilles à 2 en utilisant respectivement les arguments minsplit et minbucket dans rpart.control.
  • Utilisez la fonction plotcp() pour repérer où le taux d'erreur validé croisée peut être minimisé.
  • Utilisez which.min() pour repérer la ligne ayant le minimum de "xerror" dans tree_weights$cp. Assignez-la à index.
  • Utilisez le code fourni pour sélectionner le cp pour lequel l'erreur validée croisée est minimisée.
  • Émondez l'arbre en utilisant le paramètre de complexité où le taux d'erreur validé croisée est minimisé. Stockez l'arbre émondé dans ptree_weights.
  • Tracez l'arbre émondé avec la fonction prp(). Ajoutez un deuxième argument extra et réglez-le à 1.

Exercice interactif pratique

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

# set a seed and run the code to obtain a tree using weights, minsplit and minbucket
set.seed(345)
tree_weights <- rpart(loan_status ~ ., method = "class",
                      data = training_set,
                      control = rpart.control(minsplit = ___, minbucket = ___, cp = 0.001))

# Plot the cross-validated error rate for a changing cp


# Create an index for of the row with the minimum xerror
index <- which.min(___$___[ , "xerror"])

# Create tree_min
tree_min <- tree_weights$cp[index, "CP"]

# Prune the tree using tree_min


# Plot the pruned tree using the rpart.plot()-package
Modifier et exécuter le code