การแบ่งข้อมูลเพื่อนำทดสอบประสิทธิภาพของโมเดล

[บทความนี้เป็นเนื้อหาบางส่วนจากหนังสือ An Introduction to Data Mining Techniques (ฉบับภาษาไทย)]

การแบ่งข้อมูลเพื่อทําการทดสอบนี้มี 3 วิธีการใหญ่ ดังนี้ครับ

(1) วิธี Self Consistency Test

train_test.001

วิธี Self Consistency Test หรือบางครั้งเรียกว่า Use Training Set นี้เป็นวิธีการที่ง่ายที่สุด นั่นคือ ข้อมูลที่ใช้ในการสร้างโมเดล (model) และข้อมูลที่ใช้ในการทดสอบโมเดลเป็นข้อมูลชุดเดียวกัน กระบวนการนี้เริ่มจาก สร้างโมเดลด้วยข้อมูลเทรนนิง ดาต้า (training data) หลังจากนั้นนําโมเดลที่สร้างได้มาทํานายข้อมูลเทรนนิง ดาต้า ชุดเดิม ตัวอย่างเช่นจากรูป นําข้อมูลเทรนนิง ดาต้า ในตาราง มาสร้างโมเดลและทดสอบโมเดลเป็นต้น การวัด ประสิทธิภาพด้วยวิธีนี้จะให้ผลการวัดประสิทธิภาพที่มีค่าสูงมาก (อาจจะเข้าใกล้ 100%) เนื่องจากเป็นข้อมูล ชุดเดิมที่ระบบได้ทําการเรียนรู้มาแล้ว แต่ผลการวัดที่ได้ไม่เหมาะที่จะนําไปรายงานในงานวิจัยต่างๆ ซึ่งวิธี การนี้เหมาะสําหรับใช้ในการทดสอบประสิทธิภาพเพื่อดูแนวโน้มของโมเดลที่สร้างขึ้น ถ้าได้ผลการวัดที่น้อย แสดงว่าโมเดลไม่เหมาะสมกับข้อมูล จึงไม่ควรจะนําไปทดสอบด้วยวิธีการแบ่งข้อมูลแบบต่างๆ

(2) วิธี Split Test

train_test.002

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

(3) วิธี Cross-validation Test

วิธีนี้เป็นวิธีที่นิยมในการทำงานวิจัย เพื่อใช้ในการทดสอบประสิทธิภาพของโมเดลเนื่องจากผลที่ได้มีความน่าเชื่อถือ การวัด ประสิทธิภาพด้วยวิธี Cross-validation นี้จะทําการแบ่งข้อมูลออกเป็นหลายส่วน (มักจะแสดงด้วยค่า k) เช่น 5-fold cross-validation คือ ทําการแบ่งข้อมูลออกเป็น 5 ส่วน โดยที่แต่ละส่วนมีจํานวนข้อมูลเท่ากัน หรือ 10-fold cross-validation คือ การแบ่งข้อมูลออกเป็น 10 ส่วน โดยที่แต่ละส่วนมีจํานวนข้อมูลเท่ากัน หลัง จากนั้นข้อมูลหนึ่งส่วนจะใช้เป็นตัวทดสอบประสิทธิภาพของโมเดล ทําวนไปเช่นนี้จนครบจํานวนที่แบ่งไว้ เช่น การทดสอบด้วยวิธี 5-fold cross-validation ในรูปด้านล่างครับ

train_test.003 train_test.004 train_test.005

train_test.006

จากรูปเราแบ่งข้อมูลเทรนนิง ดาต้าออกเป็น 5 ส่วนที่มีจํานวนเท่ากัน หลังจากนั้นทําการทดสอบ

ประสิทธิภาพของโมเดล 5 ครั้ง ดังนี้

  • รอบที่ 1 ใช้ข้อมูลส่วนที่ 2,3,4 และ 5 สร้างโมเดลและใช้โมเดลทํานายข้อมูลส่วนที่ 1 เพื่อทำการทดสอบ
  • รอบที่ 2 ใช้ข้อมูลส่วนที่ 1,3,4 และ 5 สร้างโมเดลและใช้โมเดลทํานายข้อมูลส่วนที่ 2 เพื่อทำการทดสอบ
  • รอบที่ 3 ใช้ข้อมูลส่วนที่ 1,2,4 และ 5 สร้างโมเดลและใช้โมเดลทํานายข้อมูลส่วนที่ 3 เพื่อทำการทดสอบ
  • รอบที่ 4 ใช้ข้อมูลส่วนที่ 1,2,3 และ 5 สร้างโมเดลและใช้โมเดลทํานายข้อมูลส่วนที่ 4 เพื่อทำการทดสอบ
  • รอบที่ 5 ใช้ข้อมูลส่วนที่ 1,2,3 และ 4 สร้างโมเดลและใช้โมเดลทํานายข้อมูลส่วนที่ 5 เพื่อทำการทดสอบ

ท่านใดสนใจอยากเข้าใจเทคนิคดาต้า ไมน์นิงให้มากขึ้น ดูรายละเอียดได้จาก การอบรมรุ่นที่ 12 ครับ

One Comment

  1. Pingback: ตัววัดประสิทธิภาพของโมเดล Classification | Data Mining Trend

Leave a Reply

Your email address will not be published. Required fields are marked *