Cross validation
อย่างที่เห็น cross validation เป็นวิธีที่ชาญฉลาดในการหลีกเลี่ยง overfitting ในแบบฝึกหัดนี้จะคำนวณความแม่นยำแบบ cross validated
ชุดข้อมูล defaultData และโมเดลพร้อมใช้งานแล้ว ฟังก์ชันความแม่นยำอยู่ในบรรทัดแรก ๆ ของโค้ด นี่คือ cost function ของคุณ ปล่อยไว้ตามเดิมแล้วนำไปใช้ใน cv.glm() ด้านล่าง ลองทำดูเลย!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning for Marketing Analytics ใน R
คำแนะนำการฝึกหัด
ใช้ 6-fold cross validation เพื่อคำนวณความแม่นยำของโมเดล
logitModelNewโดยใช้ฟังก์ชันcv.glm()จากแพ็กเกจbootความแม่นยำแบบ cross validated จะถูกเก็บไว้ในตำแหน่งแรกของ elementdeltaในผลลัพธ์เปรียบเทียบความแม่นยำจาก cross validation กับความแม่นยำแบบ in-sample validation จำไว้ว่าค่านั้นคือ
0.7922901
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
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]