hitexts

Hi, We texts to you.

Data Cleaning คืออะไร

การทำความสะอาดข้อมูล (Data Cleaning) คือขั้นตอนหนึ่งในกระบวนการทำงานด้าน Data โดยมีจุดประสงค์เพื่อให้ข้อมูลมีความถูกต้อง และเหมาะสมกับโจทย์งานหรือโมเดลที่จะใช้มากยิ่งขึ้น ช่วยให้ได้ผลวิเคราะห์ที่เชื่อถือได้มีประสิทธิภาพหรือได้ AI ที่สามารถทำงานได้ถูกต้องแม่นยำมากขึ้น ซึ่งข้อมูลที่ต้องทำความสะอาดนั้นอาจมีปัญหาหลายเรื่องด้วยกันเช่น ในชุดข้อมูลมีข้อมูลไม่ครบถ้วนขาดหายไปบางช่อง, รูปแบบวันที่ไม่ถูกต้อง, หน่วยของข้อมูลไม่สัมพันธ์กัน, คำผิดถูก, ประเภทของข้อมูล และอื่น ๆ อีกมากมาย ด้วยปัญหาที่ไม่รู้จบนี้ส่งผลให้งานทำความสะอาดข้อมูลเป็นงานที่ต้องใช้เวลานานมากเพราะกว่าจะหารูปแบบของข้อมูลที่ผิดได้หรือกว่าจะทำความเข้าใจชุดข้อมูลได้นั้นก็กินเวลาอย่าง
มหาศาลแล้ว ฉะนั้นในบทความนี้จะช่วยให้คุณรู้จักกับวิธีการทำความสะอาดข้อมูลแบบเบื้องต้น (มักพบกรณีเหล่านี้เสมอ) เพื่อช่วยให้คุณสามารถเริ่มต้นงานข้อมูลได้รวดเร็วมากขึ้น

ตัวอย่างการทำ Data Cleaning เบื้องต้น

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

  • Drop Missing Values คือการลบแถวของชุดข้อมูลหรือคอลัมน์ของชุดข้อมูลที่มีค่าว่างออกไปทั้งหมดซึ่งวิธีนี้สามารถทำได้ไม่ยากและทำได้รวดเร็วแต่ข้อเสียคือจะสูญเสียข้อมูลไป และถ้าเกิดว่ามีค่าว่างในหลายแถวหลายคอลัมน์ก็จะยิ่งทำให้เราเสียข้อมูลมากจนเกินไป
  • Imputation คือการเติมค่าสมมุติลงไปแทนค่าว่าง เช่นการใช้ค่าเฉลี่ย, ค่าฐานนิยม เป็นต้น วิธีนี้ช่วยให้สามารถรักษาข้อมูลเอาไว้ได้ ถึงแม้ว่าข้อมูลที่เติมลงไปอาจจะไม่ถูกต้องตามความจริงนัก แต่ก็มักจะช่วยให้การวิเคราะห์หรือโมเดลทำงานได้ดีขึ้น ทั้งนี้ข้อพึงระวังในการเติมค่าคือคุณจำเป็นจะต้องมีความรู้ความเข้าใจในโจทย์และชุดข้อมูลนั้น ๆ ให้ดีซะก่อนเพื่อให้ค่าที่เติมลงไปมีความถูกต้องใกล้เคียงความจริง
  • Imputation แบบ Advance ในกรณีที่ข้อมูลและงานมีความซับซ้อนนั้นค่าที่ต้องเติมควรมีการคิดและหาวิธีเติมที่ถูกต้องมากกว่าการใช้ค่าสถิติทั่ว ๆ ไป และสำหรับงานด้าน ML นั้นอาจเพิ่มคอลัมน์สำหรับระบุว่าช่องไหนบ้างที่ทำการเติมข้อมูลลงไป (Extension to Imputation) ซึ่งเรื่องเหล่านี้จะอยู่ในการทำ Feature Engineering

การจัดการช่วงของข้อมูล และการกระจายตัวของข้อมูล (Scaling & Normalization)
วิธีการนี้จะถูกใช้กับข้อมูลที่เป็นตัวเลข โดยที่

  • Scaling คือการปรับค่าของข้อมูล (ที่มีประเภทเป็นตัวเลข) ให้อยู่ในช่วงที่กำหนด เช่นให้อยู่ในช่วง 0-100, 0-1 เป็นต้น สาเหตุที่ต้องทำการสเกลนั้นเป็นเพราะในหลาย ๆ โมเดลมองค่าไม่เหมือนกับที่มนุษย์มอง เช่น สมมุติว่า 1 USD มีค่าเท่ากับ 100 Yen แต่โมเดลอย่าง SVM หรือ KNN นั้นมองว่าส่วนต่างของ 1 Yen กับ 1 USD นั้นมีค่าเท่ากัน เป็นต้น ดังนั้นจึงต้องแปลงค่าให้อยู่ในช่วงที่เหมาะสมกับงานซะก่อน
  • Normalization คือการปรับรูปแบบการกระจายตัวของข้อมูล โดยปกติแล้วเราต้องการให้ข้อมูลมีรูปแบบการกระจายตัวแบบปกติ (Normal Distribution) เพราะในหลาย ๆ โมเดลต้องการข้อมูลที่มีการกระจายตัวแบบปกติเช่นกัน

การจัดการกับข้อมูลที่เป็นวันที่ (Parsing Dates)
วันเดือนปีและเวลา ที่มาในตารางหรือชุดข้อมูลบางครั้งก็มีรูปแบบที่ไม่ตรงกันหรือประเภทของข้อมูลไม่ใช่ datetime ดังนั้นข้อมูลวันที่เหล่านี้จึงควรจัดให้อยู่ในรูปแบบการเขียนเดียวกัน และมีประเภทเป็นdatetime จริง ๆ

การเข้ารหัสตัวอักษร (Character Encodings)
ในหลาย ๆ ครั้งชุดข้อมูลภาษาอื่น ๆ ที่ไม่ใช่ Latin Characters มักจะไม่สามารถแสดงผลข้อมูลได้ถูกต้อง อย่าง สวัสดี กลายเป็น ������ หรือกลายเป็นสิ่งที่อ่านไม่ออก ดังนั้นการเข้ารหัสตัวอักษรคือสิ่งสำคัญที่จะทำให้สามารถอ่านและแสดงผลข้อมูลได้ถูกต้อง โดยหลักการคือการจับคู่ข้อมูลดิบของตัวอักษรในรูปแบบเลขฐานสอง มาแปลความเป็นคำที่มนุษย์สามารถอ่านออกและเข้าใจได้

Tips ใน python บางครั้ง utf-8 ไม่สามารถใช้เข้ารหัสภาษาไทยได้ ให้ลองใช้เป็น tis-620 แทน

รูปแบบของข้อมูลไม่สอดคล้องกัน (Inconsistent Data Entry)
เช่น ในชุดข้อมูลมีคอลัมน์ของจังหวัดและเขตการปกครอง โดยที่ในคอลัมน์นี้มีข้อมูลทั้ง กรุงเทพมหานคร กรุงเทพฯ กทม. เป็นต้น จะเห็นว่าทั้ง 3 ค่านี้จริง ๆ แล้วคือค่าเดียวกัน ดังนั้นการจัดรูปให้ตรงกันก็เป็นเรื่องที่จำเป็นเช่นกัน

Conclusion

Data Cleaning คือการเพิ่มความถูกต้องให้กับชุดข้อมูล และเตรียมข้อมูลให้เหมาะสมกับงานโดยพื้นฐานแล้วควรเริ่มที่การทำความเข้าใจชุดข้อมูล ทำความเข้าใจโจทย์งาน และดูภาพรวมของข้อมูลแบบเดิมก่อน (Data Profiling) จากนั้นจึงจัดการตามเหมาะสม โดยสิ่งที่มักจะเจอเป็นประจำก็คือตามในหัวข้อที่ 2 ด้านบนนี้หากต้องการเรียนรู้และฝึกฝนเพิ่มเติม สามารถเรียนฟรีได้ที่ Kaggle โดยจะมีทั้งคำอธิบายที่ละเอียดและตัวอย่างข้อมูลให้ได้ทดลองทำกันอีกทั้งเมื่อเรียนจบแล้วยังได้ Certificate อีกด้วย เรียนได้ที่ลิงก์นี้เลย

Related Post

Metadata คืออะไร บอกอะไรเกี่ยวกับชุดข้อมูลนั้น ๆ บ้าง
25Sep

Metadata คืออะไร บอกอะไรเกี่ยวกับชุดข้อมูลนั้น ๆ บ้าง

Metadata คือข้อมูลที่อธิบายชุดข้อมูล เพื่อให้เข้าใจได้เบื้องต้นว่าเป็นชุดข้อมูลเกี่ยวกับอะไร ประเภทไฟล์ วันที่สร้างและปรับปรุง

Mutual Information ขั้นตอนแรกที่แนะนำให้ทำตอนเริ่มโปรเจค ML
05Aug

Mutual Information ขั้นตอนแรกที่แนะนำให้ทำตอนเริ่มโปรเจค ML

การทำงานด้าน Machine Learning นั้นจะต้องเจอข้อมูลและมีคำถามเสมอว่าควรเริ่มจากอะไรดี โดย Mutual Information เป็นหนึ่งในขั้นตอนที่แนะนำให้ทำ

One Hot Encoding วิธีแปลงข้อมูลประเภท Category เพื่อใช้เทรนโมเดล
01Aug

One Hot Encoding วิธีแปลงข้อมูลประเภท Category เพื่อใช้เทรนโมเดล

วิธีการแปลงข้อมูลประเภทหมวดหมู่/ประเภท (ที่เป็นตัวอักษร) ให้เป็นชุดตัวเลขด้วยวิธีการ One Hot Encoding เพื่อให้โมเดลสามารถเรียนรู้ได้

ANN (Artificial Neural Network) พื้นฐานของ Deep Learning
22Jul

ANN (Artificial Neural Network) พื้นฐานของ Deep Learning

การเรียนรู้เชิงลึก (Deep Learning) นั้นเป็นเทคนิคที่มัประสิทธิภาพมากในงาน Machine Learning ปัจจุบันซึ่งเบื้องหลังของมันก็คือการใช้ ANN

Parsing Dates การจัดการกับข้อมูลวันที่ในชุดข้อมูลด้วย Pandas
04Jul

Parsing Dates การจัดการกับข้อมูลวันที่ในชุดข้อมูลด้วย Pandas

ในหลาย ๆ ชุดข้อมูลมักจะมีการเก็บวันที่ไว้ด้วยเสมอ ซึ่งการ Parsing Dates จะช่วยให้ใช้งานวันที่เหล่านั้นได้ง่ายยิ่งขึ้น

Data source แหล่งชุดข้อมูลสำหรับใช้ทำงานด้านข้อมูลช่วยให้โปรเจคราบรื่นยิ่งขึ้น
01Jul

Data source แหล่งชุดข้อมูลสำหรับใช้ทำงานด้านข้อมูลช่วยให้โปรเจคราบรื่นยิ่งขึ้น

การจะเริ่มทำโปรเจคอะไรสักอย่างสิ่งที่ขาดไม่ได้เลยคือข้อมูล แล้วยิ่งเป็นงานที่เกี่ยวข้องกับ Data แล้วนั้น Data source จึงเป็นสิ่งจำเป็นมาก

© 2022 hitexts. All rights reserved