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

Đánh giá độ phù hợp mô hình ngoài mẫu

Giờ bạn đã biết nên xem độ phù hợp mô hình ngoài mẫu hơn là trong mẫu. Trong bài tập này, bạn sẽ xây dựng một thước đo độ chính xác ngoài mẫu.

Trước đó, bạn cần vài bước chuẩn bị. Dùng lại defaultData. logitModelNew đã được nạp sẵn trong môi trường của bạn.

Lưu ý rằng để phân tích đầy đủ, bạn luôn cần so sánh các phương án mô hình khác nhau, đặc biệt là bằng dữ liệu ngoài mẫu.

Độ chính xác trong mẫu — dùng ngưỡng tối ưu 0.3 — là 0.7922901. Hãy chắc chắn bạn hiểu liệu có xảy ra overfitting hay không.

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

  • Trước hết, tách ngẫu nhiên dữ liệu thành tập huấn luyện và tập kiểm tra. Tập huấn luyện chiếm 2/3 tổng dữ liệu.

  • Sau đó, chạy nhanh mô hình và đặt tên là logitTrainNew. Sử dụng công thức đã cho.

  • Dự đoán trên tập kiểm tra rồi tính độ chính xác ngoài mẫu với sự hỗ trợ của ma trận nhầm lẫn. Lưu ý SDMTools hiện không thể tải từ CRAN nữa. Trên máy cá nhân, hãy cài qua remotes::install_version("SDMTools", "1.1-221.2").

  • So sánh độ chính xác ngoài mẫu với giá trị trong mẫu ở trên.

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.

# Split data in train and test set
set.seed(534381) 
defaultData$isTrain <- rbinom(nrow(defaultData), 1, 0.66)
train <- subset(defaultData, ___ == 1)
test <- subset(defaultData, ___  == 0)

logitTrainNew <- glm(formulaLogit, family = binomial, data = ___) # Modeling
test$predNew <- predict(logitTrainNew, type = "response", newdata = ___) # Predictions

# Out-of-sample confusion matrix and accuracy
confMatrixModelNew <- confusion.matrix(___, ___, threshold = 0.3) 
sum(diag(confMatrixModelNew)) / sum(confMatrixModelNew) # Compare this value to the in-sample accuracy
Chỉnh sửa và Chạy Mã