Un último árbol usando más opciones
En este ejercicio, vas a usar algunos argumentos finales que se comentaron en el vídeo. Se cambiarán algunas especificaciones en la función rpart.control(), y se incluirán pesos usando el argumento weights en rpart(). El vector case_weights ya está construido para ti y cargado en tu espacio de trabajo. Este vector contiene pesos de 1 para los no impagos en el conjunto de entrenamiento y pesos de 3 para los impagos en los conjuntos de entrenamiento. Al especificar pesos más altos para el impago, el modelo dará mayor importancia a clasificar correctamente los impagos.
Este ejercicio forma parte del curso
Modelización del riesgo de crédito en R
Instrucciones del ejercicio
- Fija una semilla de 345.
- Completa el código proporcionado pasando
case_weightsal argumentoweightsderpart(). - Cambia el número mínimo de divisiones permitidas en un nodo a 5 y el número mínimo de observaciones permitidas en nodos hoja a 2 usando los argumentos
minsplityminbucketenrpart.control, respectivamente. - Usa la función plotcp() para investigar dónde se minimiza la tasa de error validada cruzadamente.
- Usa
which.min()para identificar la fila con el mínimo"xerror"entree_weights$cp. Asígnalo aindex. - Usa el código proporcionado para seleccionar el
cppara el que el error validado cruzadamente es mínimo. - Poda el árbol usando el parámetro de complejidad donde la tasa de error validada cruzadamente es mínima. Guarda el árbol podado en
ptree_weights. - Dibuja el árbol podado usando la función
prp(). Incluye un segundo argumentoextray asígnale el valor 1.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# set a seed and run the code to obtain a tree using weights, minsplit and minbucket
set.seed(345)
tree_weights <- rpart(loan_status ~ ., method = "class",
data = training_set,
control = rpart.control(minsplit = ___, minbucket = ___, cp = 0.001))
# Plot the cross-validated error rate for a changing cp
# Create an index for of the row with the minimum xerror
index <- which.min(___$___[ , "xerror"])
# Create tree_min
tree_min <- tree_weights$cp[index, "CP"]
# Prune the tree using tree_min
# Plot the pruned tree using the rpart.plot()-package