library(ISLR) library(boot) data(Auto) glm.fit=glm(mpg~poly(horsepower,2),data=Auto) #Default cost (squared error loss) set.seed(17) cv.err.default = cv.glm(Auto, glm.fit, K=10)$delta[1] cv.err.default #Custom cost (intentinally same as squared error loss) set.seed(17) cost.rs = function(obs,pred=0) mean((obs-pred)^2) cv.err.custom = cv.glm(Auto, glm.fit, cost=cost.rs, K=10)$delta[1] cv.err.custom #Custom binary cost set.seed(17) cost.bin = function(obs,pred=0) mean(abs(obs-pred)>0.5) cv.err.binary = cv.glm(Auto, glm.fit, cost=cost.bin, K=10)$delta[1] cv.err.binary cv.err.default cv.err.custom cv.err.binary