Eén laatste tree met meer opties
In deze oefening gebruik je enkele extra argumenten die in de video zijn besproken. Een aantal specificaties in de functie rpart.control() wordt aangepast, en er worden gewichten meegegeven via het argument weights in rpart(). De vector case_weights is al voor je aangemaakt en staat in je werkruimte. Deze vector bevat gewichten van 1 voor de non-defaults in de trainingsset en gewichten van 3 voor defaults in de trainingsset. Door hogere gewichten voor defaults te specificeren, zal het model meer belang hechten aan het correct classificeren van defaults.
Deze oefening maakt deel uit van de cursus
Kredietrisicomodellering in R
Oefeninstructies
- Zet de seed op 345.
- Breid de gegeven code uit door
case_weightsdoor te geven aan het argumentweightsvanrpart(). - Verander het minimale aantal splits dat in een knoop is toegestaan naar 5, en het minimale aantal observaties in bladknooppunten naar 2 met respectievelijk de argumenten
minsplitenminbucketinrpart.control. - Gebruik de functie plotcp() om te onderzoeken waar de kruisgevalideerde fout kan worden geminimaliseerd.
- Gebruik
which.min()om de rij te identificeren met de minimale"xerror"intree_weights$cp. Ken dit toe aanindex. - Gebruik de gegeven code om de
cpte selecteren waarvoor de kruisgevalideerde fout minimaal is. - Snoei de boom met de complexiteitsparameter waarvoor de kruisgevalideerde fout minimaal is. Sla de gesnoeide boom op in
ptree_weights. - Plot de gesnoeide boom met de functie
prp(). Voeg een tweede argumentextratoe en zet dit gelijk aan 1.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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