Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Gebruik een 6-fold cross-validation en bereken de nauwkeurigheid voor het model logitModelNew. De functie die je nodig hebt is cv.glm() uit het boot-pakket. De cross-gevalideerde nauwkeurigheid staat op de eerste positie van het delta-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]
Code bewerken en uitvoeren