Cross validation
Come hai visto, la cross validation è un metodo efficace per evitare l’overfitting. In questo esercizio calcolerai l’accuratezza con cross validation.
Puoi iniziare subito: i dati necessari defaultData e il modello sono già pronti. La funzione per l’accuratezza si trova nelle prime righe di codice: è la tua funzione di costo. Lasciala così com’è e usala nella chiamata a cv.glm() qui sotto. Prova tu!
Questo esercizio fa parte del corso
Machine Learning per il Marketing Analytics in R
Istruzioni dell'esercizio
Usa una cross validation a 6 fold e calcola l’accuratezza per il modello
logitModelNew. La funzione che ti serve ècv.glm()del pacchettoboot. L’accuratezza con cross validation è memorizzata nella prima posizione dell’elementodeltadel risultato.Confronta l’accuratezza ottenuta con la cross validation con quella dell’in-sample validation. Ricorda: era
0.7922901.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
library(boot)
# Accuracy function
costAcc <- function(r, pi = 0) {
cm <- confusion.matrix(r, pi, threshold = 0.3)
acc <- sum(diag(cm)) / sum(cm)
return(acc)
}
# Cross validated accuracy for logitModelNew
set.seed(534381)
cv.glm(___, ___, cost = ___, K = ___)$delta[1]