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 pondérations seront ajoutées via l’argument weights de rpart(). Le vecteur case_weights a été préparé pour vous et chargé dans votre espace de travail. Ce vecteur contient des poids de 1 pour les non-défauts dans l’ensemble d’entraînement, et des poids de 3 pour les défauts dans les ensembles d’entraînement. En attribuant des poids plus élevés aux défauts, le modèle accordera plus d’importance à une classification correcte des défauts.
Cet exercice fait partie du cours
<cours>Modélisation du risque de crédit en R</cours>Instructions de l’exercice
- Fixez une graine aléatoire à 345.
- Complétez le code fourni en passant
case_weightsà l’argumentweightsde `rpart(). - Modifiez le nombre minimal de divisions autorisées dans un nœud à 5, et le nombre minimal d’observations autorisées dans les feuilles à 2 en utilisant respectivement les arguments
minsplitetminbucketdansrpart.control. - Utilisez la fonction plotcp() pour examiner où le taux d’erreur validé croisé peut être minimisé.
- Utilisez
which.min()pour identifier la ligne avec le minimum de"xerror"danstree_weights$cp. Affectez-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é pour lequel le taux d’erreur validé croisé est minimisé. Enregistrez l’arbre émondé dans
ptree_weights. - Tracez l’arbre émondé avec la fonction
prp(). Ajoutez un deuxième argumentextraet fixez-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