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
Instructions de l’exercice
- Fixez la graine aléatoire à 345.
- Complétez le code fourni en passant
case_weightsà l'argumentweightsderpart(). - 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
minsplitetminbucketdansrpart.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"danstree_weights$cp. Assignez-la àindex. - Utilisez le code fourni pour sélectionner le
cppour 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 argumentextraet 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