ชุดข้อมูล: การแบ่งชุดข้อมูลเดิม

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

ชุดการฝึก การตรวจสอบ และการทดสอบ

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

รูปที่ 8 แถบแนวนอนที่แบ่งออกเป็น 2 ส่วน โดยประมาณ 80% เป็นชุดการฝึกและประมาณ 20% เป็นชุดทดสอบ
รูปที่ 8 การแบ่งงบประมาณไม่เหมาะสม

 

แบบฝึกหัด: ตรวจสอบความรู้สึกของคุณ

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

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

รูปที่ 9 แถบแนวนอนที่แบ่งออกเป็น 3 ส่วน โดย 70% เป็นชุดการฝึก 15% เป็นชุดตรวจสอบ และ 15% เป็นชุดทดสอบ
รูปที่ 9 แบ่งรายได้ได้ดีขึ้นมาก

ใช้ชุดที่ใช้ตรวจสอบเพื่อประเมินผลลัพธ์จากชุดข้อมูลการฝึก หลังจากใช้ชุดข้อมูลที่ใช้ตรวจสอบซ้ำๆ พบว่าโมเดลของคุณทำการคาดการณ์ได้ดี ให้ใช้ชุดทดสอบเพื่อตรวจสอบโมเดลอีกครั้ง

รูปภาพต่อไปนี้แสดงเวิร์กโฟลว์นี้ ในรูปภาพ "ปรับแต่งโมเดล" หมายถึงการปรับทุกอย่างเกี่ยวกับโมเดล ตั้งแต่การเปลี่ยนอัตราการเรียนรู้ การเพิ่มหรือนําฟีเจอร์ออก ไปจนถึงการออกแบบโมเดลใหม่ทั้งหมดตั้งแต่ต้น

รูปที่ 10 แผนภาพเวิร์กโฟลว์ที่มีระยะต่างๆ ดังนี้
            1. ฝึกโมเดลในชุดข้อมูลการฝึก
            2. ประเมินโมเดลในชุดทดสอบ
            3. ปรับแต่งโมเดลตามผลลัพธ์ในชุดที่ใช้ตรวจสอบ
            4. ทำซ้ำขั้นตอนที่ 1, 2 และ 3 แล้วเลือกโมเดลที่ทำงานได้ดีที่สุดในกลุ่มทดสอบ
            5. ยืนยันผลลัพธ์ในชุดทดสอบ
รูปที่ 10 เวิร์กโฟลว์ที่ดีสําหรับการพัฒนาและการทดสอบ

เวิร์กโฟลว์ที่แสดงในรูปที่ 10 เป็นเวิร์กโฟลว์ที่ดีที่สุด แต่แม้จะใช้เวิร์กโฟลว์นี้ ชุดทดสอบและชุดตรวจสอบก็ยังคง "เสื่อมสภาพ" เมื่อใช้ซ้ำ กล่าวคือ ยิ่งคุณใช้ข้อมูลเดียวกันในการตัดสินใจเกี่ยวกับการตั้งค่าไฮเปอร์พารามิเตอร์หรือการปรับปรุงโมเดลอื่นๆ มากเท่าใด ความเชื่อมั่นที่ว่าโมเดลจะคาดการณ์ข้อมูลใหม่ได้ดีก็จะยิ่งลดลงเท่านั้น ด้วยเหตุนี้ คุณจึงควรรวบรวมข้อมูลเพิ่มเติมเพื่อ "รีเฟรช" ชุดทดสอบและชุดการตรวจสอบ การเริ่มต้นใหม่เป็นวิธีรีเซ็ตที่ยอดเยี่ยม

แบบฝึกหัด: ตรวจสอบความรู้สึกของคุณ

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

ปัญหาเพิ่มเติมเกี่ยวกับชุดทดสอบ

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

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

โดยสรุปแล้ว ชุดทดสอบหรือชุดการตรวจสอบที่ดีจะต้องมีคุณสมบัติตรงตามเกณฑ์ต่อไปนี้ทั้งหมด

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

แบบฝึกหัด: ทดสอบความเข้าใจ

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