ตัวอย่างการแยกข้อมูล

หลังจากที่รวบรวมข้อมูลและสุ่มตัวอย่างแล้ว ขั้นตอนต่อไปคือแบ่งข้อมูลออกเป็นชุดการฝึก ชุดการตรวจสอบ และชุดทดสอบ

เมื่อการสุ่มแยกไม่ใช่แนวทางที่ดีที่สุด

การแยกส่วนแบบสุ่มเป็นวิธีที่ดีที่สุดสําหรับปัญหา ML หลายรายการ แต่ก็ไม่ใช่วิธีแก้ไขที่ถูกต้องเสมอไป ตัวอย่างเช่น ลองพิจารณาชุดข้อมูลที่ตัวอย่างจะรวมไว้ในตัวอย่างคล้ายกันอย่างถูกต้อง

สมมติว่าคุณต้องการให้โมเดลของคุณแยกประเภทหัวข้อจากข้อความของบทความข่าว เหตุใดการแยกแบบสุ่มจึงทําให้เกิดปัญหา

บทความ 4 เรื่องแยกกัน (ติดป้ายกํากับว่า "เรื่องราว 1", "เรื่องราว 2",
"เรื่องราว 3" และ "เรื่องราว 4") จะแสดงในไทม์ไลน์ รูปที่ 1 เรื่องราวข่าวเป็นกลุ่ม

เรื่องราวข่าวสารจะปรากฏในคลัสเตอร์ โดยหลายเรื่องราวเกี่ยวกับหัวข้อเดียวกันจะเผยแพร่พร้อมกัน ถ้าเราแยกข้อมูลแบบสุ่ม ดังนั้นชุดทดสอบและชุดการฝึกมักจะมีข้อมูลที่เหมือนกัน ในความเป็นจริงแล้ว มันไม่ใช่เรื่องแบบนี้เพราะเรื่องราวทั้งหมดจะมาพร้อมกัน การแยกส่วนเช่นนี้ก็จะทําให้เวลานี้เปลี่ยนไป

บทความเดียวกันจากรูปที่ 1 ไม่ได้อยู่บนไทม์ไลน์อีกต่อไป แต่ปัจจุบันบทความจะสุ่มแบ่งออกเป็นชุดการฝึกและชุดทดสอบ ชุดการฝึกอบรมและชุดทดสอบ
มีตัวอย่างการผสมจาก 4 ตัวอย่างที่แตกต่างกัน รูปที่ 2 การแยกแบบสุ่มจะแยกคลัสเตอร์ระหว่างชุด ทําให้เกิดการบิดเบี้ยว

วิธีง่ายๆ ในการแก้ไขปัญหานี้คือการแบ่งข้อมูลของเรา โดยอิงตามเวลาที่เผยแพร่เรื่องราว หรืออาจจะแบ่งตามวันที่เผยแพร่เรื่องราว การดําเนินการนี้จะทําให้เรื่องราวจากวันเดียวกันอยู่ในการแบ่งส่วนเดียวกัน

ตอนนี้ไทม์ไลน์ดั้งเดิมจากรูปที่ 1 แบ่งออกเป็นชุดการฝึกและชุดทดสอบแล้ว บทความทั้งหมดจาก "Story 1" และ "Story 2"
อยู่ในชุดการฝึกอบรม และบทความทั้งหมดจาก "Story 3" และ "Story 4"
อยู่ในชุดทดสอบ รูปที่ 3 การแยกส่วนเวลาทําให้คลัสเตอร์ส่วนใหญ่ได้อยู่ในชุดเดียวกัน

เมื่อมีข่าวเป็นหมื่นๆ รายการอาจมีเปอร์เซ็นต์ที่แบ่งเป็นวันๆ แต่ในความเป็นจริงแล้ว เรื่องราวเหล่านี้แบ่งออกเป็น 2 วันของวงจรข่าว นอกจากนี้ คุณยังสามารถลบข้อมูลภายใน เวลาปิดรับคําสั่งซื้อเพื่อตรวจสอบว่าคุณจะไม่ทับซ้อนกัน เช่น คุณจะฝึกเรื่องราวในเดือนเมษายน จากนั้นใช้สัปดาห์ที่ 2 ของเดือนพฤษภาคมเป็นชุดการทดสอบได้ โดยช่องว่างระหว่างสัปดาห์ไม่อาจเหลื่อมซ้อนกัน