Aan de slagGa gratis aan de slag

Undersampling van de trainingsset

In de video zag je dat je het probleem van onevenwichtige data kunt aanpakken met under- of oversampling. De trainingsset is voor je ge-undersampled, zodat 1/3 van de trainingsset uit defaults bestaat en 2/3 uit non-defaults. De resulterende gegevensset is beschikbaar in je werkruimte als undersampled_training_set, en bevat minder observaties (6570 in plaats van 19394). In deze oefening maak je een beslisboom met de ge-undersamplede gegevensset.

Je zult merken dat de bomen in deze en de volgende oefeningen erg groot zijn — zo groot dat je ze niet echt meer kunt lezen. Geen zorgen: in de volgende video laten we je zien hoe je ze beheersbaar kunt maken!

Deze oefening maakt deel uit van de cursus

Kredietrisicomodellering in R

Cursus bekijken

Oefeninstructies

  • Het pakket rpart is al voor je geïnstalleerd. Laad het pakket in je werkruimte.
  • Pas de gegeven code aan zodat er een beslisboom wordt gebouwd met de ge-undersamplede trainingsset in plaats van training_set. Voeg daarnaast het argument control = rpart.control(cp = 0.001) toe. cp, de complexity parameter, is de drempelwaarde voor de afname in algemene lack of fit bij elke splitsing. Als niet aan cp wordt voldaan, worden er geen verdere splitsingen uitgevoerd. De standaardwaarde van cp is 0,01, maar voor complexe problemen is het aan te raden cp te versoepelen.
  • Plot de beslisboom met de functie plot en de naam van het boomobject. Voeg een tweede argument uniform = TRUE toe om takken even lang te maken.
  • De vorige opdracht maakt alleen een boom met knopen en verbindingen, maar zonder tekst (zogenoemde "labels"). Gebruik de functie text() met als enige argument tree_undersample om labels toe te voegen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Load package rpart in your workspace.


# Change the code provided in the video such that a decision tree is constructed using the undersampled training set. Include rpart.control to relax the complexity parameter to 0.001.
tree_undersample <- rpart(loan_status ~ ., method = "class",
                          data =  training_set)

# Plot the decision tree


# Add labels to the decision tree
Code bewerken en uitvoeren