LoslegenKostenlos starten

Den Gain für einen Baum berechnen

Im Video hast du gesehen, wie das Gini-Maß genutzt wird, um den perfekten Split für einen Baum zu bestimmen. Jetzt berechnest du den Gain für den Baum, der in deinem Workspace geladen ist.

Der Datensatz enthält 500 Fälle, davon sind 89 Defaults. Das ergibt im Root-Knoten ein Gini von 0.292632. Zur Erinnerung: Gini eines bestimmten Knotens = 2 * Anteil der Defaults in diesem Knoten * Anteil der Nicht-Defaults in diesem Knoten. Sieh dir zur Auffrischung den folgenden Code an.

gini_root <- 2 * (89 / 500) * (411 / 500)

Du nutzt diese Gini-Werte, um den Gain der Blattknoten im Vergleich zum Root-Knoten zu berechnen. Schau dir den folgenden Code an, um zu sehen, wie du die ermittelten Gini-Werte zur Berechnung des Gains eines Knotens verwenden kannst.

Gain = gini_root - (prop(cases left leaf) * gini_left) - (prop(cases right leaf * gini_right))

Berechne das Gini im linken und im rechten Knoten sowie den Gain der beiden Blattknoten relativ zum Root-Knoten. Das Objekt, das den Baum enthält, heißt small_tree.

Diese Übung ist Teil des Kurses

<Kurs>Kreditrisikomodellierung in R</Kurs>
Kurs ansehen

Übungsanweisungen

  • Die Berechnung für das Gini des Root-Knotens ist vorgegeben.
  • Berechne das Gini-Maß für den linken Blattknoten.
  • Berechne das Gini-Maß für den rechten Blattknoten.
  • Berechne den Gain, indem du die gewichteten Gini-Maße der Blattknoten vom Gini des Root-Knotens abziehst.
  • Informationen zum Split in diesem Baum findest du mit $split am Baumobjekt small_tree. Anstelle von Gain solltest du hier die Spalte improve betrachten. improve ist eine alternative Kennzahl für den Gain, die sich einfach ergibt, indem man den Gain mit der Anzahl der Fälle im Datensatz multipliziert. Stelle sicher, dass das Objekt improve (Code vorgegeben) denselben Wert hat wie in small_tree$split.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# The Gini-measure of the root node is given below
gini_root <- 2 * 89 / 500 * 411 / 500

# Compute the Gini measure for the left leaf node
gini_ll <-

# Compute the Gini measure for the right leaf node
gini_rl <-

# Compute the gain
gain <- gini_root - 446 / 500 * gini_ll - 54 / 500 * gini_rl

# compare the improve-column in small_tree$splits with our computed gain, multiplied by 500, and assure they are the same
small_tree$splits
improve <- gain * 500
Code bearbeiten und ausführen