Including a loss matrix
Thirdly, you can include a loss matrix, changing the relative importance of misclassifying a default as non-default versus a non-default as a default. You want to stress that misclassifying a default as a non-default should be penalized more heavily. Including a loss matrix can again be done in the argument parms
in the loss matrix.
parms = list(loss = matrix(c(0, cost_def_as_nondef, cost_nondef_as_def, 0), ncol=2))
Doing this, you are constructing a 2x2-matrix with zeroes on the diagonal and changed loss penalties off-diagonal. The default loss matrix is all ones off-diagonal.
This exercise is part of the course
Credit Risk Modeling in R
Exercise instructions
- Change the code provided such a loss matrix is included, with a penalization that is 10 times bigger when misclassifying an actual default as a non-default. This can be done replacing
cost_def_as_nondef
by 10, andcost_nondef_as_def
by 1. Similar to what you've done in the previous exercises, includerpart.control
to relax the complexity parameter to 0.001. - Plot the decision tree using the function plot and the tree object name. Add a second argument
uniform = TRUE
to get equal-sized branches, and add labels to the tree usingtext()
with the tree object name.
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
# Change the code below such that a decision tree is constructed using a loss matrix penalizing 10 times more heavily for misclassified defaults.
tree_loss_matrix <- rpart(loan_status ~ ., method = "class",
data = training_set)
# Plot the decision tree
# Add labels to the decision tree