Zacznij terazZacznij za darmo

Ostatnie drzewo z dodatkowymi opcjami

W tym ćwiczeniu użyjesz kilku dodatkowych argumentów omówionych w lekcji wideo. Zmienisz niektóre ustawienia w funkcji rpart.control() oraz dodasz wagi za pomocą argumentu weights w funkcji rpart(). Wektor case_weights został już przygotowany i wczytany do twojego środowiska. Zawiera on wagi równe 1 dla obserwacji bez niewykonania zobowiązania w zbiorze treningowym oraz wagi równe 3 dla obserwacji z niewykonaniem zobowiązania. Przypisując wyższe wagi do niewykonania zobowiązania, model będzie przykładał większą wagę do poprawnej klasyfikacji takich przypadków.

To ćwiczenie jest częścią kursu

Modelowanie ryzyka kredytowego w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Ustaw ziarno losowości na 345.
  • Uzupełnij podany kod, przekazując case_weights do argumentu weights funkcji rpart().
  • Zmień minimalną liczbę podziałów dozwolonych w węźle na 5, a minimalną liczbę obserwacji w węzłach liściowych na 2 – użyj do tego argumentów minsplit i minbucket w rpart.control.
  • Użyj funkcji plotcp(), aby sprawdzić, gdzie można zminimalizować błąd kroswalidacyjny.
  • Użyj which.min(), aby znaleźć wiersz z minimalną wartością "xerror" w tree_weights$cp. Przypisz wynik do zmiennej index.
  • Użyj podanego kodu, aby wybrać wartość cp, przy której błąd kroswalidacyjny jest minimalny.
  • Przytnij drzewo, korzystając z parametru złożoności minimalizującego błąd kroswalidacyjny. Zapisz przycięte drzewo w zmiennej ptree_weights.
  • Narysuj przycięte drzewo za pomocą funkcji prp(). Dodaj drugi argument extra i ustaw go na 1.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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
Edytuj i uruchom kod