Calcular la ganancia de un árbol
En el vídeo viste cómo se usa la medida de Gini para crear la división perfecta en un árbol. Ahora vas a calcular la ganancia del árbol cargado en tu espacio de trabajo.
El conjunto de datos contiene 500 casos; 89 de estos casos son impagos. Esto da lugar a un Gini de 0.292632 en el nodo raíz. Como recordatorio, recuerda que el Gini de un nodo determinado = 2 * proporción de impagos en ese nodo * proporción de no impagos en ese nodo. Échale un vistazo al código para refrescarlo.
gini_root <- 2 * (89 / 500) * (411 / 500)
Usarás estas medidas de Gini para ayudarte a calcular la ganancia de las hojas con respecto al nodo raíz. Observa el siguiente código para hacerte una idea de cómo puedes usar las medidas de Gini que creaste para calcular la ganancia de un nodo.
Gain = gini_root - (prop(cases left leaf) * gini_left) - (prop(cases right leaf * gini_right))
Calcula el Gini en el nodo izquierdo y en el nodo derecho, y la ganancia de las dos hojas con respecto al nodo raíz. El objeto que contiene el árbol es small_tree.
Este ejercicio forma parte del curso
Modelización del riesgo de crédito en R
Instrucciones del ejercicio
- Se proporciona el cálculo del Gini del nodo raíz.
- Calcula la medida de Gini para la hoja izquierda.
- Calcula la medida de Gini para la hoja derecha.
- Calcula la ganancia tomando la diferencia entre el Gini del nodo raíz y las medidas de Gini ponderadas de las hojas.
- La información sobre la división en este árbol se puede consultar usando
$splity el objeto del árbol,small_tree. En lugar de gain, aquí deberías fijarte en la columnaimprove.improvees una métrica alternativa a la ganancia, que se obtiene simplemente multiplicando la ganancia por el número de casos del conjunto de datos. Asegúrate de que el objetoimprove(código proporcionado) tenga el mismo valor que ensmall_tree$split.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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