ลองแบ่งข้อมูลแบบ 60/40
อย่างที่เห็นในวิดีโอ เราจะใช้ชุดข้อมูล Sonar ในบทนี้ โดยแบ่งเป็นชุดฝึก 60% และชุดทดสอบ 40% มาฝึกแบ่งข้อมูลเป็น train/test อีกครั้ง เพื่อให้คุ้นเคยกับกระบวนการนี้มากขึ้น จำไว้ว่าสามารถใช้ฟังก์ชัน sample() เพื่อสุ่มลำดับดัชนีแถวในชุดข้อมูล ซึ่งนำไปใช้ในการแบ่ง train/test ได้ เช่น:
n_obs <- nrow(my_data)
permuted_rows <- sample(n_obs)
จากนั้นใช้ดัชนีแถวเหล่านั้นเพื่อจัดเรียงชุดข้อมูลใหม่แบบสุ่ม เช่น:
my_data <- my_data[permuted_rows, ]
เมื่อจัดเรียงชุดข้อมูลแบบสุ่มแล้ว ก็แบ่ง 60% แรกเป็นชุดฝึก และ 40% ที่เหลือเป็นชุดทดสอบได้เลย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning ด้วย caret ใน R
คำแนะนำการฝึกหัด
- ดึงจำนวนการสังเกต (แถว) ใน
Sonarแล้วกำหนดให้กับn_obs - สุ่มลำดับดัชนีแถวของ
Sonarแล้วเก็บผลลัพธ์ไว้ในpermuted_rows - ใช้
permuted_rowsเพื่อจัดเรียงแถวของSonarใหม่แบบสุ่ม แล้วบันทึกเป็นSonar_shuffled - หาหมายเลขแถวที่ใช้แบ่งข้อมูลสำหรับอัตราส่วน 60/40 แล้วเก็บไว้ใน
split - บันทึก 60% แรกของ
Sonar_shuffledเป็นชุดฝึก - บันทึก 40% ที่เหลือของ
Sonar_shuffledเป็นชุดทดสอบ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Get the number of observations
# Shuffle row indices: permuted_rows
# Randomly order data: Sonar
# Identify row to split on: split
split <- round(n_obs * ___)
# Create train
# Create test