Korsvalidering
Korsvalidering är en smart metod för att undvika överanpassning, som du just har sett. I den här övningen ska du beräkna den korsvaliderade noggrannheten.
Data defaultData och modellen finns redan tillgängliga. Noggrannhetsfunktionen hittar du i de första raderna i koden – det är din kostnadsfunktion. Lämna den som den är och använd den i ditt anrop till cv.glm() nedan. Testa!
Den här övningen är en del av kursen
Maskininlärning för marknadsanalys i R
Övningsinstruktioner
Använd 6-faldig korsvalidering och beräkna noggrannheten för modellen
logitModelNew. Funktionen du behöver ärcv.glm()från paketetboot. Den korsvaliderade noggrannheten lagras i den första positionen i elementetdeltai resultatet.Jämför noggrannheten från korsvalideringen med den från in-sample-valideringen. Den var
0.7922901.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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]