Ein letztes Baummodell mit mehr Optionen
In dieser Übung verwendest du einige zusätzliche Argumente, die im Video besprochen wurden. Einige Spezifikationen in der Funktion rpart.control() werden geändert, und Gewichte werden über das Argument weights in rpart() einbezogen. Der Vektor case_weights wurde für dich erstellt und ist in deinem Workspace geladen. Dieser Vektor enthält Gewichte von 1 für Non-Defaults im Trainingssatz und Gewichte von 3 für Defaults im Trainingssatz. Durch höhere Gewichte für Defaults misst das Modell einer korrekten Klassifikation von Defaults mehr Bedeutung bei.
Diese Übung ist Teil des Kurses
<Kurs>Kreditrisikomodellierung in R</Kurs>Übungsanweisungen
- Setze den Zufallssamen auf 345.
- Ergänze den bereitgestellten Code, indem du
case_weightsan das Argumentweightsvonrpart()übergibst. - Ändere die minimale Anzahl an Splits, die in einem Knoten erlaubt sind, auf 5, und die minimale Anzahl an Beobachtungen in Blattknoten auf 2, indem du die Argumente
minsplitbzw.minbucketinrpart.controlverwendest. - Nutze die Funktion plotcp(), um zu untersuchen, wo die kreuzvalidierte Fehlerrate minimiert werden kann.
- Verwende
which.min(), um die Zeile mit dem minimalen"xerror"intree_weights$cpzu identifizieren. Weise diesindexzu. - Nutze den bereitgestellten Code, um das
cpauszuwählen, für das der kreuzvalidierte Fehler minimal ist. - Prune den Baum mithilfe des Complexity-Parameters, bei dem die kreuzvalidierte Fehlerrate minimiert wird. Speichere den beschnittenen Baum in
ptree_weights. - Plotte den beschnittenen Baum mit der Funktion
prp(). Füge ein zweites Argumentextrahinzu und setze es auf 1.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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