Cross-validation
Cross-validation is, zoals je zag, een slimme manier om overfitting te voorkomen. In deze oefening ga je de cross-gevalideerde nauwkeurigheid berekenen.
Je kunt meteen aan de slag: de nodige data defaultData en het model staan al klaar. De accuratessefunctie vind je in de eerste regels code. Dit is je kostfunctie. Laat die zoals hij is en gebruik hem in je aanroep van cv.glm() hieronder. Probeer het uit!
Deze oefening maakt deel uit van de cursus
Machine Learning for Marketing Analytics in R
Oefeninstructies
Gebruik een 6-fold cross-validation en bereken de nauwkeurigheid voor het model
logitModelNew. De functie die je nodig hebt iscv.glm()uit hetboot-pakket. De cross-gevalideerde nauwkeurigheid staat op de eerste positie van hetdelta-element van het resultaat.Vergelijk je nauwkeurigheid uit de cross-validation met die van de in-samplevalidatie. Weet je het nog? Dat was
0.7922901.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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]