21 เม.ย. เวลา 08:18 • วิทยาศาสตร์ & เทคโนโลยี

มาลองจัดการ Missing Data ด้วย PANDAS กันเถอะ

Pandas เป็นไลบรารีที่ทรงพลังสำหรับการจัดการและวิเคราะห์ข้อมูลในภาษา Python มันเป็นเหมือนกล่องเครื่องมือที่เต็มไปด้วยฟังก์ชันและวิธีการที่ช่วยให้คุณสามารถจัดการกับข้อมูลได้อย่างง่ายดายและยืดหยุ่น โดยจะแสดงผลออกมาในรูปแบบของตารางซึ่งในตัว Pandas นั้นเราจะเรียกมันว่า Dataframe (df) โดยก่อนที่จะใช้งาน Pandas นั้น เราต้องอย่าลืม Import library มาใช้ก่อนด้วยคำสั่ง
import pandas as pd
Pandas
Missing value หรือข้อมูลที่ขาดหายไป คือช่องว่างในชุดข้อมูลที่ควรจะมีค่า แต่ไม่มีค่า บางครั้งจะเห็นได้ว่าเป็น NaN (Not a Number), None, หรือค่าที่ว่างเปล่าโดยเหตุผลที่อาจทำให้เกิดข้อมูลที่ขาดหายไปมีหลายอย่าง เช่น
  • 1.
    การเก็บข้อมูลไม่สมบูรณ์: อาจเกิดจากการที่ข้อมูลไม่ได้ถูกบันทึกลงไป
  • 2.
    ข้อผิดพลาดในการป้อนข้อมูล: อาจเกิดจากการป้อนข้อมูลผิด หรือขาดการป้อนข้อมูล
  • 3.
    ความไม่สอดคล้องกันของแหล่งข้อมูล: หากข้อมูลมาจากแหล่งหลายแหล่ง อาจทำให้มีช่องว่างหรือข้อมูลขาดหายไป
Missing value
ซึ่งในบทความนี้เราจะไปทำความรู้จักการจัดการกับ Missing value ด้วย Pandas อย่างคร่าวๆกัน
วิธีที่ 1 การลบข้อมูลที่มี missing data ทิ้งไปเลย:
- ลบแถวหรือคอลัมน์ที่มีข้อมูลขาดหายไป
- เหมาะสำหรับกรณีที่ข้อมูลที่ขาดหายไปมีน้อยเมื่อเทียบกับข้อมูลทั้งหมด
- ระวัง: อาจทำให้สูญเสียข้อมูลสำคัญ
โดยฟังก์ชันที่เราใช้ใน pandas นั้นคือ
df.dropna()
df.dropna(axis=1)
วิธีที่ 2 การแทนที่ด้วยค่าเฉลี่ย/ค่ากลาง:
- แทนที่ข้อมูลที่ขาดหายไปด้วยค่าเฉลี่ย (mean), ค่ามัธยฐาน (median), หรือโหมด (mode)
- วิธีที่ใช้กันทั่วไปเพื่อรักษาความสมบูรณ์ของข้อมูล
- ควรเลือกให้เหมาะสมกับประเภทของข้อมูลเพราะข้อมูลบางประเภทค่ากลางอาจจะไม่ได้เป็นค่าที่เหมาะสมในการแทนที่ข้อมูลที่หายไป
โดยฟังก์ชันที่เราใช้ใน pandas นั้นคือ
df_fillna = df.fillna({'Age': mean_age})
วิธีที่ 3 การใช้อัลกอริทึมในการประเมินค่า (Machine learning imputation):
- ประมาณค่าข้อมูลที่ขาดหายไปด้วยอัลกอริทึมทาง Machine Learning เช่น K-Nearest Neighbors (KNN), MICE
- ใช้โมเดลการทำนายอื่นๆ เพื่อเติมข้อมูลที่ขาดหายไป
โดยถ้าจะใช้ Machine Learning นั้นจะต้อง Import library เพิ่มเติมคือ sklearn
เพื่อเป็นการเพิ่มความเข้าใจมากขึ้น ผู้อ่านบางท่านคงจะสงสัยว่าแล้ว Machine learning ที่กล่าวมานั้นคืออะไรหรอ ??? <ในบทความนี้เลือกใช้ Machine learning ที่มีชื่อว่า KNN>
Machine Learning (การเรียนรู้ของเครื่อง) เป็นวิธีการสร้างโมเดลของความสัมพันธ์ของข้อมูลที่สามารถเรียนรู้จากข้อมูลที่มีอยู่ ซึ่งโดยอาจจะแบ่งคร่าวๆได้เป็นประเภทดังนี้
  • 1.
    Supervised Learning : โมเดลเรียนรู้จากข้อมูลที่มีคำตอบกำกับข้อมูลไว้
  • 2.
    Unsupervised Learning : โมเดลเรียนรู้จากข้อมูลที่ไม่มีคำตอบกำกับข้อมูลไว้
  • 3.
    Semi-supervised Learning : ผสมผสานระหว่างสองวิธีการข้างต้น
ซึ่งวิธีที่เลือกใช้ในบทความนี้มีชื่อว่า K-Nearest Neighbors (KNN) ซึ่งหลักการของมันคือจะดูว่าข้อมูลของเราที่หายไปนั้น Feature ของมันที่มีอยู่มีค่าใกล้เคียงกับกลุ่มข้อมูลไหนมากที่สุด มันก็จะโยน Missing value ของเราเข้าไปอยู่ในกลุ่มนั้น (ถ้าเป็นข้อมูลประเภทตัวเลขก็จะทำการหาค่ากลางของกลุ่มให้)
K-Nearest Neighbors (KNN)
จะเห็นได้ว่าการจัดการกับข้อมูลที่หายไปนั้นมีหลายวิธีมากมายเต็มไปหมด ขึ้นอยู่กับบริบทของข้อมูลที่หายไป จริงๆแล้วเราจะเลือกใช้วิธีไหนก็ได้เพียงแต่ว่าเราต้องหาเหตุผลมาสนับสนุนให้ได้ว่าเพราะอะไรเราถึงเลือกใช้การแทนที่ข้อมูลด้วยวิธีที่เราเลือกนั่นเอง
ติดตามเนื้อหาสนุกๆเกี่ยวกับ Data ไปพร้อมกับพวกเรา Capydata ได้ที่
FB : Capydata เรียนรู้ Data สไตล์ Capybara
Blockdit : Capydata เรียนรู้ Data สไตล์ Capybara
Youtube : Capydata
โฆษณา