Potatura dell'albero con probabilità a priori modificate
Nel video hai visto che potare un albero è necessario per evitare l'overfitting. Negli esercizi precedenti c'erano alberi molto grandi e ora metterai in pratica quanto hai imparato, potando l'albero costruito in precedenza con le probabilità a priori modificate. Il pacchetto rpart è già caricato nel tuo workspace.
Per prima cosa imposterai un seed per assicurarti che i risultati siano riproducibili, come menzionato nel video, perché esaminerai i risultati dell'errore con convalida incrociata. I risultati coinvolgono casualità e potrebbero variare leggermente se esegui di nuovo la funzione con un seed diverso.
In questo esercizio imparerai a identificare quale parametro di complessità (CP) minimizza l'errore convalidato incrociato e poi poterai il tuo albero in base a questo valore.
Questo esercizio fa parte del corso
Credit Risk Modeling in R
Istruzioni dell'esercizio
tree_priorè caricato nel tuo workspace.- Usa
plotcp()per visualizzare l'errore con convalida incrociata (X-val Relative Error) in relazione al parametro di complessità pertree_prior. - Usa
printcp()per stampare una tabella con informazioni su CP, split ed errori. Prova a identificare quale split ha l'errore convalidato incrociato minimo intree_prior. - Usa
which.min()per individuare quale riga intree_prior$cptableha l'errore convalidato incrociato minimo"xerror". Assegna il risultato aindex. - Crea
tree_minselezionando l'indice ditree_prior$cptablenella colonna"CP". - Usa la funzione
prune()per ottenere l'albero potato. Chiama l'albero potatoptree_prior. - Il pacchetto
rpart.plotè caricato nel tuo workspace. Traccia l'albero potato usando la funzione prp() (impostazioni predefinite).
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# tree_prior is loaded in your workspace
# Plot the cross-validated error rate as a function of the complexity parameter
# Use printcp() to identify for which complexity parameter the cross-validated error rate is minimized.
# Create an index for of the row with the minimum xerror
index <- which.min(___$___[ , "xerror"])
# Create tree_min
tree_min <- tree_prior$cptable[index, "CP"]
# Prune the tree using tree_min
ptree_prior <- prune(___, cp = ___)
# Use prp() to plot the pruned tree