IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Imposta un seed pari a 345.
  • Completa il codice fornito passando case_weights all'argomento weights di rpart().
  • 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 minsplit e minbucket in rpart.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" in tree_weights$cp. Assegna questo valore a index.
  • Usa il codice fornito per selezionare il cp per 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 argomento extra e 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
Modifica ed esegui il codice