CommencerCommencez gratuitement

Matrices de confusion et précision de nos arbres finaux

Au fil des derniers exercices, vous avez construit plusieurs arbres de décision élagués, quatre au total. Comme vous pouvez le constater, le nombre final de divisions varie fortement d’un arbre à l’autre :

ptree_undersample  # 7 splits
ptree_prior  # 9 splits
ptree_loss_matrix  # 24 splits
ptree_weights  # 6 splits

Il est maintenant important d’identifier lequel offre la meilleure précision. Pour obtenir la précision, commencez par faire des prédictions sur l’ensemble de test et construisez la matrice de confusion pour chacun de ces arbres. Ajoutez l’argument type = "class" lors de ces prédictions. Cela évite d’avoir à fixer un seuil.

Néanmoins, gardez à l’esprit que la précision n’est pas le seul critère : la sensibilité et la spécificité comptent aussi. De plus, prédire des probabilités plutôt que des valeurs binaires (0 ou 1) permet d’ajuster le seuil. En revanche, cela pose la question du choix de ce seuil. Vous y reviendrez au chapitre suivant.

Si vous avez besoin d’un rappel, voici comment calculer la précision : $$\textrm{Classification accuracy} = \frac{(TP + TN)}{(TP + FP + TN + FN)}$$

Cet exercice fait partie du cours

<cours>Modélisation du risque de crédit en R</cours>
Voir le cours

Instructions de l’exercice

  • Utilisez predict() pour produire des prédictions pour les quatre arbres. Indiquez test_set dans l’argument newdata. N’oubliez pas d’ajouter type = "class" !
  • Construisez des matrices de confusion pour chacun de ces arbres de décision. Utilisez la fonction table() et placez d’abord le statut « vrai » (avec test_set$loan_status), puis la prédiction.
  • Calculez la précision à partir de chacune des matrices de confusion.

Exercice interactif pratique

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

# Make predictions for each of the pruned trees using the test set.
pred_undersample <- predict(ptree_undersample, newdata = test_set,  type = "class")
pred_prior <-
pred_loss_matrix <-
pred_weights <-

# construct confusion matrices using the predictions.
confmat_undersample <- table(test_set$loan_status, pred_undersample)
confmat_prior <-
confmat_loss_matrix <-
confmat_weights <-

# Compute the accuracies
acc_undersample <- sum(diag(confmat_undersample)) / nrow(test_set)
acc_prior <-
acc_loss_matrix <-
acc_weights <-
Modifier et exécuter le code