CommencerCommencez 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 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>
Voir le cours

Instructions de l’exercice

  • Fixez une graine aléatoire à 345.
  • Complétez le code fourni en passant case_weights à l’argument weights de `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 minsplit et minbucket dans rpart.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" dans tree_weights$cp. Affectez-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é 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 argument extra et 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
Modifier et exécuter le code