Cross validation
Cross validation is a clever method to avoid overfitting as you could see. In this exercise you are going to calculate the cross validated accuracy.
You can go right ahead, the necessary data defaultData
and model are waiting for you. You can find the accuracy function in the first few lines of code. This is your cost function. Just leave it as it is and use it for your call to cv.glm()
below. Try it out!
This exercise is part of the course
Machine Learning for Marketing Analytics in R
Exercise instructions
Use a 6-fold cross validation and calculate the accuracy for the model
logitModelNew
. The function you need iscv.glm()
of theboot
package. The cross validated accuracy is stored in the first position of thedelta
element of the result.Compare your accuracy of the cross validation to the one of the in-sample validation. Remember, it was
0.7922901
.
Hands-on interactive exercise
Have a go at this exercise by completing this sample code.
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]