Cross validation
Như bạn đã thấy, cross validation là một cách thông minh để tránh overfitting. Trong bài tập này, bạn sẽ tính độ chính xác (accuracy) được cross-validate.
Bạn có thể bắt đầu ngay: dữ liệu defaultData và mô hình đã sẵn sàng. Bạn sẽ thấy hàm tính accuracy ở vài dòng đầu tiên của mã. Đây là hàm chi phí của bạn. Hãy giữ nguyên và dùng nó khi gọi cv.glm() bên dưới. Thử thực hiện nhé!
Bài tập này là một phần của khóa học
Machine Learning cho Phân tích Marketing bằng R
Hướng dẫn bài tập
Dùng cross validation 6-fold và tính độ chính xác cho mô hình
logitModelNew. Hàm bạn cần làcv.glm()trong góiboot. Độ chính xác đã cross-validate được lưu ở vị trí đầu tiên của phần tửdeltatrong kết quả.So sánh độ chính xác từ cross validation với độ chính xác từ in-sample validation. Nhớ rằng, giá trị in-sample là
0.7922901.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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]