Finální strom s rozšířenými možnostmi
V tomto cvičení použiješ několik dalších argumentů, o kterých jsme mluvili ve videu. Upravíme některá nastavení funkce rpart.control() a přidáme váhy pomocí argumentu weights ve funkci rpart(). Vektor case_weights je už připravený a načtený v tvém pracovním prostředí. Obsahuje váhu 1 pro záznamy bez defaultu v trénovací sadě a váhu 3 pro záznamy s defaultem. Díky vyšším vahám pro default model přikládá větší důležitost správné klasifikaci defaultů.
Toto cvičení je součástí kurzu
Modelování kreditního rizika v R
Pokyny k cvičení
- Nastav seed na hodnotu 345.
- Doplň připravený kód tak, aby se
case_weightspředalo argumentuweightsve funkcirpart(). - Nastav minimální počet pozorování potřebných k rozdělení uzlu na 5 a minimální počet pozorování v listových uzlech na 2 – použij argumenty
minsplitaminbucketve funkcirpart.control. - Pomocí funkce plotcp() zjisti, při jaké hodnotě lze minimalizovat chybu odhadnutou křížovou validací.
- Pomocí
which.min()najdi řádek s nejmenší hodnotou"xerror"vtree_weights$cp. Výsledek ulož do proměnnéindex. - Pomocí připraveného kódu vyber hodnotu
cp, při které je chyba z křížové validace nejnižší. - Ořež strom s použitím parametru složitosti odpovídajícího minimální chybě z křížové validace. Ořezaný strom ulož do
ptree_weights. - Vizualizuj ořezaný strom pomocí funkce
prp(). Přidej druhý argumentextraa nastav ho na hodnotu 1.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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