เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

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 กับชุดข้อมูล Boston housing อีกครั้ง
  • ใช้ 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
แก้ไขและรันโค้ด