Calculer le gain d’un arbre
Dans la vidéo, vous avez vu comment la mesure de Gini est utilisée pour créer la scission idéale d’un arbre. Vous allez maintenant calculer le gain pour l’arbre chargé dans votre espace de travail.
L’ensemble de données contient 500 dossiers, dont 89 défauts. On obtient ainsi un Gini de 0,292632 dans le nœud racine. Pour rappel, le Gini d’un nœud donné = 2 × proportion de défauts dans ce nœud × proportion de non-défauts dans ce nœud. Consultez le code ci-dessous pour vous rafraîchir la mémoire.
gini_root <- 2 * (89 / 500) * (411 / 500)
Vous allez utiliser ces mesures de Gini pour calculer le gain des feuilles par rapport au nœud racine. Regardez le code suivant pour voir comment utiliser les Gini que vous avez calculés pour déterminer le gain d’un nœud.
Gain = gini_root - (prop(cases left leaf) * gini_left) - (prop(cases right leaf * gini_right))
Calculez le Gini dans le nœud de gauche et dans le nœud de droite, ainsi que le gain des deux feuilles par rapport au nœud racine. L’objet contenant l’arbre est small_tree.
Cet exercice fait partie du cours
<cours>Modélisation du risque de crédit en R</cours>Instructions de l’exercice
- Le calcul du Gini pour le nœud racine est fourni.
- Calculez la mesure de Gini pour la feuille de gauche.
- Calculez la mesure de Gini pour la feuille de droite.
- Calculez le gain en prenant la différence entre le Gini du nœud racine et la combinaison pondérée des Gini des feuilles.
- Les informations sur la scission de cet arbre sont disponibles via
$splitet l’objet arbresmall_tree. Au lieu du gain, regardez la colonneimproveici.improveest une métrique alternative du gain, simplement obtenue en multipliant le gain par le nombre de cas dans l’ensemble de données. Assurez-vous que l’objetimprove(code fourni) a la même valeur que danssmall_tree$split.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# The Gini-measure of the root node is given below
gini_root <- 2 * 89 / 500 * 411 / 500
# Compute the Gini measure for the left leaf node
gini_ll <-
# Compute the Gini measure for the right leaf node
gini_rl <-
# Compute the gain
gain <- gini_root - 446 / 500 * gini_ll - 54 / 500 * gini_rl
# compare the improve-column in small_tree$splits with our computed gain, multiplied by 500, and assure they are the same
small_tree$splits
improve <- gain * 500