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

โปรเจ็กต์วิศวกรรมซอฟต์แวร์ที่ดีทุกโปรเจ็กต์จะทุ่มเทพลังงานอย่างมากไปกับการทดสอบแอป ในทํานองเดียวกัน เราขอแนะนําอย่างยิ่งให้ทดสอบรูปแบบ 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% ของชุดข้อมูลเดิม
15% อาจมากหรือน้อยเกินไป