/ Machine Learning

วิธีเลือก 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 ต้องสามารถใช้วัดประสิทธิภาพของโมเดลที่สอดคล้องกับการใช้งานจริงมากที่สุด เราจึงต้องเลือกอย่างรอบคอบ

วิธีเลือก Test set อย่างมีคุณภาพ
Share this

Subscribe to Code on the Hill