Un ultimo albero con più opzioni
In questo esercizio userai alcuni argomenti finali discussi nel video. Alcune specifiche nella funzione rpart.control() verranno modificate e verranno inclusi dei pesi usando l'argomento weights in rpart(). Il vettore case_weights è stato già costruito per te ed è caricato nel tuo workspace. Questo vettore contiene pesi pari a 1 per i non-default nel training set e pesi pari a 3 per i default nei training set. Specificando un peso maggiore per i default, il modello attribuirà più importanza a classificarli correttamente.
Questo esercizio fa parte del corso
Credit Risk Modeling in R
Istruzioni dell'esercizio
- Imposta un seed pari a 345.
- Completa il codice fornito passando
case_weightsall'argomentoweightsdirpart(). - Modifica il numero minimo di suddivisioni consentite in un nodo a 5 e il numero minimo di osservazioni consentite nei nodi foglia a 2 usando rispettivamente gli argomenti
minspliteminbucketinrpart.control. - Usa la funzione plotcp() per verificare dove si minimizza il tasso di errore cross-validato.
- Usa
which.min()per identificare la riga con il minimo"xerror"intree_weights$cp. Assegna questo valore aindex. - Usa il codice fornito per selezionare il
cpper cui l'errore cross-validato è minimizzato - Esegui il pruning dell'albero usando il parametro di complessità in corrispondenza del minimo tasso di errore cross-validato. Salva l'albero potato in
ptree_weights. - Traccia l'albero potato usando la funzione
prp(). Includi un secondo argomentoextrae impostalo uguale a 1.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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