โมดูลก่อนหน้านี้ได้แนะนำแนวคิดในการแบ่งชุดข้อมูลออกเป็น 2 ชุดย่อย ดังนี้
- ชุดการฝึก - ชุดย่อยสำหรับฝึกโมเดล
- ชุดทดสอบ - ชุดย่อยในการทดสอบโมเดลที่ผ่านการฝึก
ลองจินตนาการถึงการแบ่งชุดข้อมูลเดียวดังนี้
รูปที่ 1 การแบ่งชุดข้อมูลเดียวลงในชุดการฝึกและชุดทดสอบ
ตรวจสอบว่าชุดทดสอบเป็นไปตามเงื่อนไข 2 ข้อต่อไปนี้
- มีขนาดใหญ่พอที่จะให้ผลลัพธ์ที่มีความหมายทางสถิติ
- เป็นตัวแทนของชุดข้อมูลโดยรวม พูดอีกอย่างคือ อย่าเลือกชุดทดสอบที่มีลักษณะต่างจากชุดการฝึก
สมมติว่าชุดทดสอบเป็นไปตามเงื่อนไข 2 ข้อก่อนหน้านี้ เป้าหมายของคุณคือการสร้างโมเดลที่สรุปข้อมูลได้ดีกับข้อมูลใหม่ ชุดทดสอบของเราทำหน้าที่เป็นพร็อกซีสำหรับข้อมูลใหม่ ตัวอย่างเช่น ลองพิจารณาตัวเลขต่อไปนี้ จะเห็นว่าโมเดลที่เรียนรู้สำหรับข้อมูลการฝึกนั้นเรียบง่ายมาก โมเดลนี้ทำงานไม่สมบูรณ์แบบ การคาดการณ์บางอย่างไม่ถูกต้อง แต่โมเดลนี้จะทำงานกับข้อมูลทดสอบได้ดีพอๆ กับข้อมูลการฝึก กล่าวคือ โมเดลง่ายๆ นี้ไม่ได้ปรับแต่งข้อมูลการฝึกมากเกินไป
รูปที่ 2 ตรวจสอบความถูกต้องของโมเดลที่ฝึกกับข้อมูลทดสอบ
อย่าฝึกกับข้อมูลทดสอบ หากคุณเห็นผลลัพธ์ที่ดีจนน่าตกใจในเมตริกการประเมิน นั่นอาจเป็นสัญญาณว่าคุณฝึกฝนชุดทดสอบโดยไม่ได้ตั้งใจ ตัวอย่างเช่น ความแม่นยำสูงอาจบ่งชี้ว่าข้อมูลการทดสอบรั่วไหลเข้าไปในชุดการฝึก
เช่น ลองใช้โมเดลที่คาดการณ์ว่าอีเมลเป็นสแปมหรือไม่ โดยใช้บรรทัดเรื่อง เนื้อหาอีเมล และอีเมลของผู้ส่งเป็นฟีเจอร์ เราแบ่งข้อมูลออกเป็นชุดการฝึกและการทดสอบ โดยมีการแยกเป็น 80-20 หลังการฝึก โมเดลจะมีความแม่นยำ 99% ทั้งในชุดการฝึกและชุดทดสอบ เราคาดว่าชุดทดสอบจะมีความแม่นยำต่ำกว่า ดังนั้น เราจึงตรวจสอบข้อมูลอีกครั้งและพบว่าตัวอย่างจำนวนมากในชุดการทดสอบเป็นตัวอย่างที่ซ้ำกันในชุดการฝึก (เราละเลยที่จะสครับรายการที่ซ้ำกันของอีเมลสแปมเดียวกันจากฐานข้อมูลอินพุตของเราก่อนที่จะแยกข้อมูล) เราได้ฝึกข้อมูลทดสอบบางส่วนโดยไม่ได้ตั้งใจแล้ว จึงทำให้ไม่สามารถวัดผลว่าโมเดลของเราแสดงข้อมูลใหม่ได้อย่างแม่นยําอีกต่อไปเพียงใด