Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

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ói boot. Độ chính xác đã cross-validate được lưu ở vị trí đầu tiên của phần tử delta trong 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]
Chỉnh sửa và Chạy Mã