CommencerCommencez gratuitement

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>
Voir le 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 $split et l’objet arbre small_tree. Au lieu du gain, regardez la colonne improve ici. improve est 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’objet improve (code fourni) a la même valeur que dans small_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
Modifier et exécuter le code