Undersampling zbioru treningowego
W materiale wideo zobaczyłeś, że aby poradzić sobie z problemem niezbalansowanych danych, możesz zastosować undersampling lub oversampling. Zbiór treningowy został dla ciebie poddany undersamplingowi tak, że 1/3 obserwacji to przypadki niewypłacalności, a 2/3 to przypadki bez niewypłacalności. Wynikowy zbiór danych jest dostępny w twoim środowisku pod nazwą undersampled_training_set i zawiera mniej obserwacji (6570 zamiast 19394). W tym ćwiczeniu zbudujesz drzewo decyzyjne na podstawie tego zbioru.
Zauważysz, że drzewa w tym i kolejnych ćwiczeniach są bardzo duże – tak duże, że trudno je odczytać. Na razie się tym nie przejmuj – w następnym materiale wideo pokażemy ci, jak uczynić je bardziej czytelnymi!
To ćwiczenie jest częścią kursu
Modelowanie ryzyka kredytowego w R
Instrukcje do ćwiczenia
- Pakiet rpart został już zainstalowany. Załaduj go do swojego środowiska.
- Zmodyfikuj podany kod tak, aby drzewo decyzyjne było budowane na podstawie undersamplowanego zbioru treningowego zamiast
training_set. Dodaj również argumentcontrol = rpart.control(cp = 0.001). Parametrcp– czyli parametr złożoności – to wartość progowa dla spadku ogólnego braku dopasowania przy każdym podziale. Jeśli wartośćcpnie zostanie osiągnięta, dalsze podziały nie będą wykonywane. Domyślna wartośćcpwynosi 0,01, ale w przypadku złożonych problemów zaleca się jej zmniejszenie. - Zwizualizuj drzewo decyzyjne, używając funkcji plot z nazwą obiektu drzewa jako argumentem. Dodaj drugi argument
uniform = TRUE, aby uzyskać gałęzie równej długości. - Poprzednie polecenie tworzy drzewo z węzłami i krawędziami, ale bez żadnych etykiet. Użyj funkcji
text()z jedynym argumentemtree_undersample, aby dodać etykiety.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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