Cross-validation แบบ 5 x 5-fold
การทำ cross-validation ไม่ได้จำกัดแค่รอบเดียว การทำ repeated cross-validation ช่วยให้ได้ค่าประมาณของ test-set error ที่แม่นยำยิ่งขึ้น โดยการทำซ้ำกระบวนการ cross-validation ทั้งหมดหลายรอบ แม้จะใช้เวลานานกว่า แต่ก็ให้ชุดข้อมูลนอกตัวอย่าง (out-of-sample) มากขึ้น และช่วยให้ประเมินประสิทธิภาพของโมเดลได้แม่นยำกว่าเดิมมาก
จุดเด่นของฟังก์ชัน train() ใน caret คือความยืดหยุ่นสูง สามารถเปลี่ยนโมเดลหรือวิธี cross-validation ได้หลากหลาย เพียงแค่ปรับ argument ไม่กี่ตัว ตัวอย่างเช่น สามารถทำซ้ำกระบวนการ cross-validation ทั้งหมด 5 รอบเพื่อเพิ่มความเชื่อมั่นในการประเมินความแม่นยำของโมเดลบนข้อมูลนอกตัวอย่าง เช่น:
trControl = trainControl(
method = "repeatedcv",
number = 5,
repeats = 5,
verboseIter = TRUE
)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning ด้วย caret ใน R
คำแนะนำการฝึกหัด
- Fit โมเดล linear regression กับชุดข้อมูล
Bostonhousing อีกครั้ง - ใช้ 5-fold cross-validation โดยทำซ้ำ 5 รอบ
- แสดงผลโมเดลใน console
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Fit lm model using 5 x 5-fold CV: model
model <- train(
medv ~ .,
Boston,
method = "lm",
trControl = trainControl(
method = "repeatedcv",
number = ___,
repeats = ___,
verboseIter = TRUE
)
)
# Print model to console