Aan de slagGa gratis aan de slag

De boom snoeien met aangepaste voorafkansen

In de video heb je geleerd dat het snoeien van een boom nodig is om overfitting te voorkomen. In de vorige oefeningen kwamen er flinke bomen voorbij; nu ga je aan de slag met wat je hebt geleerd en snoei je de eerder gebouwde boom met de aangepaste voorafkansen. Het pakket rpart is al geladen in je werkruimte.

Eerst zet je een seed om ervoor te zorgen dat de resultaten reproduceerbaar zijn, zoals in de video is genoemd, omdat je de cross-gevalideerde foutresultaten gaat bekijken. De resultaten bevatten toeval en kunnen licht variëren als je de functie opnieuw draait met een andere seed.

In deze oefening leer je bepalen welke complexiteitsparameter (CP) de cross-gevalideerde fout minimaliseert, en snoei je je boom op basis van deze waarde.

Deze oefening maakt deel uit van de cursus

Kredietrisicomodellering in R

Cursus bekijken

Oefeninstructies

  • tree_prior is geladen in je werkruimte.
  • Gebruik plotcp() om de cross-gevalideerde fout (X-val Relative Error) te visualiseren in relatie tot de complexiteitsparameter voor tree_prior.
  • Gebruik printcp() om een tabel met informatie over CP, splits en fouten af te drukken. Kijk of je kunt bepalen welke split de minimale cross-gevalideerde fout heeft in tree_prior.
  • Gebruik which.min() om te bepalen welke rij in tree_prior$cptable de minimale cross-gevalideerde fout "xerror" heeft. Ken dit toe aan index.
  • Maak tree_min door de index van tree_prior$cptable te selecteren binnen de kolom "CP".
  • Gebruik de functie prune() om de gesnoeide boom te verkrijgen. Noem de gesnoeide boom ptree_prior.
  • Pakket rpart.plot is geladen in je werkruimte. Plot de gesnoeide boom met de functie prp() (standaardinstelling).

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# tree_prior is loaded in your workspace

# Plot the cross-validated error rate as a function of the complexity parameter


# Use printcp() to identify for which complexity parameter the cross-validated error rate is minimized.


# Create an index for of the row with the minimum xerror
index <- which.min(___$___[ , "xerror"])

# Create tree_min
tree_min <- tree_prior$cptable[index, "CP"]

#  Prune the tree using tree_min
ptree_prior <- prune(___, cp = ___)

# Use prp() to plot the pruned tree
Code bewerken en uitvoeren