วิธีเลือก Test set อย่างมีคุณภาพ
สมมุติว่าเราต้องการสร้างโมเดล Machine Learning โดยมีข้อมูลอยู่ 10,000 ตัว อย่างแรกที่ต้องทำคือเลือกข้อมูลจำนวนหนึ่งมาใช้เป็น Test set เช่น เลือกมา 1,000 ตัว คำถามคือ แล้วเราจะเลือก 1,000 ตัวไหนมาเป็น Test set ดี
เลือกแบบสุ่ม
วิธีที่ง่ายที่สุดคือสุ่มจากข้อมูลทั้งหมดมา 1,000 ตัว แล้วหวังว่าข้อมูลที่ได้มาจะใช้เป็นตัวแทนของข้อมูลทั้งหมดได้ ในหลายกรณีก็ใช้ได้จริง แต่ในกรณีที่ข้อมูลไม่สมดุล วิธีนี้อาจไม่ตอบโจทย์
เช่น สมมติว่าเรามีข้อมูลของลูกค้าผู้หญิง 70% และผู้ชาย 30% แล้วต้องการคาดการณ์การใช้จ่ายของลูกค้าในอนาคต หากเราเชื่อว่าเพศมีผลสำคัญต่อคำตอบที่เราต้องการหา เราควรเลือกสัดส่วนเพศใน Test set ตามข้อมูลที่ใช้จริง
ถ้าเราสุ่มข้อมูล 1,000 ตัวมาเป็น Test set มีความเป็นไปได้ที่เราจะได้สัดส่วนที่ไม่ตรงกับข้อมูลจริง เช่นอาจจะได้ผู้หญิงมา 65% และผู้ชาย 35%
เลือกแบบสุ่มตามสัดส่วน
ในกรณีที่กล่าวมา วิธีที่แนะนำคือเราควรเลือกข้อมูล 1,000 ตัวมาเป็น Test set โดยสุ่ม 700 ตัวอย่าง (70%) จากกลุ่มที่เป็นผู้หญิง และสุ่ม 300 ตัวอย่าง (30%) จากกลุ่มที่เป็นผู้ชาย วิธีนี้เรียกว่า Stratified Sampling
ถ้าลูกค้าของเรามีสัดส่วนผู้หญิงต่อผู้ชายเป็น 70:30 จริง วิธีนี้จะได้ Test set ที่ใช้เป็นตัวแทนของข้อมูลได้ดีกว่าวิธีสุ่มตัวอย่างจากข้อมูลทั้งหมดในคราวเดียว
ตัวแปรที่ใช้เลือกสัดส่วน
การตัดสินใจว่าจะสุ่มตามสัดส่วนของตัวแปรไหน จำเป็นต้องมีความรู้ใน domain นั้น คนที่มีประสบการณ์ในธุรกิจนั้นๆ จะให้คำแนะนำในเรื่องนี้ได้ดี นอกจากนี้ ตัวแปรที่ใช้แบ่งสัดส่วนอาจมีมากกว่า 1 ตัวก็ได้
ส่งท้าย
การเลือก Test set มีความสำคัญมาก เพราะ Test set ต้องสามารถใช้วัดประสิทธิภาพของโมเดลที่สอดคล้องกับการใช้งานจริงมากที่สุด เราจึงต้องเลือกอย่างรอบคอบ
Subscribe to Code on the Hill
Get the latest posts delivered right to your inbox