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

Cross-validation 10-fold

Như bạn đã thấy trong video, một cách tốt hơn để kiểm định mô hình là dùng nhiều tập kiểm định có hệ thống, thay vì chỉ một phép chia ngẫu nhiên train/test. May mắn là gói caret giúp việc này trở nên rất dễ:

model <- train(y ~ ., my_data)

caret hỗ trợ nhiều kiểu cross-validation, và bạn có thể chỉ định loại cross-validation cùng số lượng folds bằng hàm trainControl(), rồi truyền đối tượng này vào đối số trControl của train():

model <- train(
  y ~ ., 
  my_data,
  method = "lm",
  trControl = trainControl(
    method = "cv", 
    number = 10,
    verboseIter = TRUE
  )
)

Lưu ý quan trọng: bạn truyền phương pháp mô hình hóa cho hàm train() chính, còn phương pháp cross-validation thì truyền cho hàm trainControl().

Bài tập này là một phần của khóa học

Machine Learning với caret trong R

Xem khóa học

Hướng dẫn bài tập

  • Khớp một mô hình hồi quy tuyến tính để mô hình hóa price dùng tất cả biến còn lại trong bộ dữ liệu diamonds làm biến dự báo. Sử dụng hàm train() với cross-validation 10-fold. (Lưu ý: chúng tôi đã lấy một tập con của bộ diamonds đầy đủ để tăng tốc, nhưng tên vẫn là diamonds.)
  • In mô hình ra console và xem xét kết quả.

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.

# Fit lm model using 10-fold CV: model
model <- train(
  ___, 
  ___,
  method = "lm",
  trControl = trainControl(
    method = "cv", 
    number = ___,
    verboseIter = TRUE
  )
)

# Print model to console
Chỉnh sửa và Chạy Mã