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
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
pricedùng tất cả biến còn lại trong bộ dữ liệudiamondslàm biến dự báo. Sử dụng hàmtrain()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