CommencezCommencez gratuitement

Calculer le gain d'un arbre

Dans la vidéo, vous avez vu comment la mesure de Gini sert à déterminer la séparation idéale d'un arbre. Maintenant, vous allez calculer le gain pour l'arbre chargé dans votre espace de travail.

L'ensemble de données contient 500 cas, dont 89 défauts. Cela donne un Gini de 0,292632 au nœud racine. Petit rappel : le Gini d'un nœud = 2 × proportion de défauts dans ce nœud × proportion de non-défauts dans ce nœud. Consultez le code ci-dessous au besoin.

gini_root <- 2 * (89 / 500) * (411 / 500)

Vous utiliserez ces mesures de Gini pour calculer le gain des feuilles par rapport au nœud racine. Voyez l'exemple suivant pour comprendre comment utiliser les Gini calculés afin d'obtenir le gain d'un nœud.

Gain = gini_root - (prop(cases left leaf) * gini_left) - (prop(cases right leaf * gini_right))

Calculez le Gini du nœud de gauche et du nœud de droite, ainsi que le gain des deux feuilles par rapport au nœud racine. L'objet qui contient l'arbre est small_tree.

Cette activité fait partie du cours

Modélisation du risque de crédit en R

Voir le cours

Instructions de l’exercice

  • Le calcul du Gini du 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 faisant la différence entre le Gini du nœud racine et la combinaison pondérée des Gini des feuilles.
  • Les informations sur la séparation dans cet arbre se trouvent avec $split sur l'objet d'arbre, small_tree. Plutôt que le gain, regardez la colonne improve. improve est une mesure équivalente au 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