LoslegenKostenlos starten

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>
Kurs ansehen

Übungsanweisungen

  • Setze den Zufallssamen auf 345.
  • Ergänze den bereitgestellten Code, indem du case_weights an das Argument weights von rpart() ü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 minsplit bzw. minbucket in rpart.control verwendest.
  • Nutze die Funktion plotcp(), um zu untersuchen, wo die kreuzvalidierte Fehlerrate minimiert werden kann.
  • Verwende which.min(), um die Zeile mit dem minimalen "xerror" in tree_weights$cp zu identifizieren. Weise dies index zu.
  • Nutze den bereitgestellten Code, um das cp auszuwä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 Argument extra hinzu 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
Code bearbeiten und ausführen