4 เทคนิค การจัดการกับ Missing Data ใน Datasets

21-ต.ค.-21

คัมภีร์เทพ IT

ข้อมูลสูญหาย (Missing Data) ดูเหมือนจะเป็นปัญหาที่ Data Scientist มักจะเจอกันแทบทุกคน ซึ่งทำให้ Data Scientist ไม่สามารถ ทำการวิเคราะห์สิ่งที่เราต้องการหรือ Run Model บางอย่างได้ ในบทความนี้จะพูดถึง 4 เทคนิค การจัดการกับ Missing Data ใน Datasets

ก่อนอื่นเรามาทำความเข้าใจกันก่อนว่า ไม่มีวิธีที่ดีที่สุด “อย่างเป็นทางการ” ในการจัดการกับ Null Data แต่โดยทั่วไปแล้ว วิธีที่ดีที่สุดในการจัดการกับสถานการณ์นี้ ก็คือ ทำความเข้าใจว่า Data มาจากไหนและมันมีหมายความว่าอย่างไร

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

ดังที่เราเห็น ข้อมูลสูญหาย (Missing Data) นั้นอยู่ในคอลัมน์ ‘Age’ และ ‘Cabin’ เท่านั้น สิ่งเหล่านี้เป็น Data Type แบบ Float และ Categorical ตามลำดับ ดังนั้น เราจึงต้องจัดการกับ 2 คอลัมน์นี้ ด้วยวิธีที่แตกต่างกัน

1. Delete the Data

วิธีที่ง่ายที่สุด ก็คือ เพียงแค่ลบ Training Examples ทั้งหมดในคอลัมน์ที่มี Null Entries

จะเห็นว่า ตอนนี้ไม่มี Null Entries แล้ว แต่แน่นอนว่า คงไม่มีอะไรได้มาง่าย ๆ เราลองมาดูกันว่า Training Examples เหลืออยู่เท่าไร:

จะเห็นว่า เหลือเพียง 87 Examples เท่านั้น จากเดิมที่มีอยู่ 418 ดังนั้น เราลด Dataset ของเราลงประมาณ 80% ซึ่งนี่ยังห่างไกลจากสิ่งที่ควรจะเป็น แต่สำหรับ Datasets อื่น ๆ นั้น การใช้วิธีการนี้อาจจะสมเหตุสมผลก็ได้ อาจจะพูดได้ว่า การลดจำนวน Data ลงสูงสุด 5% ดูจะเหมาะสมแล้ว ไม่เช่นนั้นคุณอาจสูญเสีย Data ที่มีค่า ที่จะส่งผลต่อการ Training Model ของคุณ

2. Imputing Averages

วิธีถัดไปคือ การกำหนดค่าเฉลี่ยบางอย่าง (Mean, Median หรือ Mode)) ให้กับ Null Entries เราลองมาดูจากส่วนหนึ่งของ Data ต่อไปนี้:

สำหรับคอลัมน์ 'Age' แล้ว ค่าเฉลี่ย (Mean) สามารถคำนวณได้ดังนี้:

เพิ่มค่าเฉลี่ยของอายุ คือ 30 ลงใน Null Entries โปรดสังเกตว่า สำหรับคอลัมน์ 'Cabin' แล้ว Entries ยังคงเป็น NaN อยู่ แต่คุณไม่สามารถคำนวณค่าเฉลี่ยสำหรับ Object Datatype ได้ เพราะมันเป็น Categorical ซึ่งเราสามารถแก้ไขได้โดยการคำนวณ Mode ของมัน:

3. Assign New Category

ในส่วนที่เกี่ยวกับ 'Cabin' Feature มีเพียง 91 Entries เท่านั้น ซึ่งคิดเป็นประมาณ 25% ของ Examples ทั้งหมด ดังนั้นค่า Mode ที่เราคำนวณไว้ก่อนหน้านี้ จึงไม่น่าเชื่อถือมากนัก วิธีที่ดีกว่าก็คือ การกำหนดค่า NaN เหล่านั้นตาม Category:

เนื่องจากเราไม่มีค่า NaN อีกต่อไป Machine Learning Algorithms จึงสามารถใช้ Dataset นี้ได้ อย่างไรก็ตาม มันจะใช้ค่า "Unknown" ในคอลัมน์ 'Cabin' เป็น Category ของมันเอง แม้ว่าจะไม่เคยมีอยู่ใน Titanic ก็ตาม

4. Certain Algorithms

เทคนิคสุดท้าย ก็คือ การไม่ต้องทำอะไรเลย โดยทั่วไป Machine Learning Algorithms ส่วนใหญ่จะใช้งานไม่ได้กับข้อมูลสูญหาย (Missing Data) แต่ในทางกลับกัน Algorithms ทั้งหมดอย่าง K-Nearest Neighbor, Naive Bayes และ XGBoost กลับใช้การได้กับข้อมูลสูญหาย (Missing Data)  คุณสามารถหาข้อมูลบน Online ได้มากมายเกี่ยวกับ Algorithms เหล่านี้และการ Implementation ของมัน

สรุป

มีหลายวิธีในการจัดการกับข้อมูลสูญหาย (Missing Data) บางวิธีการก็ดีกว่าวิธีอื่นๆ ขึ้นอยู่กับ Type ของ Data และจำนวนที่สูญหายไป นอกจากนี้ยังมีวิธีที่ซับซ้อนกว่าในการป้อนข้อมูลที่สูญหาย ซึ่งไม่ได้กล่าวถึงในที่นี้ แต่ตัวเลือกเหล่านี้ ก็เป็นตัวเลือกที่ดีที่คุณสามารถเริ่มต้นได้

ที่มา: https://betterprogramming.pub/

 

 

รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

เพิ่มเพื่อน

 

บทความล่าสุด