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
Instrukcje do ćwiczenia
- Ustaw ziarno losowości na 345.
- Uzupełnij podany kod, przekazując
case_weightsdo argumentuweightsfunkcjirpart(). - 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
minsplitiminbucketwrpart.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"wtree_weights$cp. Przypisz wynik do zmiennejindex. - 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 argumentextrai 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