การแก้ไขข้อมูลที่ขาดหาย ค่าว่างในชุดข้อมูล เพื่อประสิทธิภาพ machine learning

Image placeholder
แวะมาทักทายกันได้



???? เมื่อโพสที่แล้ว เราพูดถึงการเปลี่ยนข้อมูลจากภาษาของมนุษย์ เปลี่ยนให้เป็นภาษาที่คอมพิวเตอร์หรือเครื่องสามารถอ่านค่าได้ ก็คือตัวเลข แต่ในโพสนี้จะพูดถึงวิธีจัดการค่าว่าง เพื่อไม่ให้เกิดข้อผิดพลาดตามที่กล่าวมาข้างต้น

1️⃣ / 7️⃣ ในโลกความเป็นจริง บางครั้งข้อมูลที่ถูกเก็บรวบรวมไม่ได้ครบถ้วนสมบูรณ์เสมอไป ไม่ว่าจะเป็น

  • รวบรวมข้อมูลไม่ถูกต้อง
  • เกิดข้อผิดพลาดขณะที่จัดเก็บรวบรวม ไม่ว่าจะออฟไลน์ หรือ ออนไลน์ก็ตาม
  • คัดลอกข้อมูลผิด
  • ถูกเว้นเอาไว้ไม่เติม

2️⃣ / 7️⃣  โดยส่วนใหญ่แล้วข้อผิดพลาดที่มักจะทำให้ระบบผิดพลาด เกิดจากช่องว่าง หรือ ในภาษาของ programmer จะเรียกมันว่า “NULL” “NAN” หรือ “” ไม่มีค่าอะไรใน double quate

สงสัยหรือไม่ที่ ว่าทำไมพูดถึง ข้อมูลที่ผิดพลาดที่เกิดจากช่องว่าง หรือ ค่าว่าง

เพราะว่า Machine Learning จะทำได้อย่างไม่มีประสิทธิภาพ เพราะ ไม่สามารถนำข้อมูลที่ไม่มีมาเป็นตัวเลือกไม่การทำนายได้ สิ่งที่เกิดขึ้นโดยทั่วๆไปแล้วในโลกของ machine learning คือ เกิดการไบอัส และทำได้ไม่ถูกต้อง ทำงานไม่ได้ และ ไม่แม่นยำ

3️⃣ / 7️⃣  สิ่งนี้คือปัญหา ที่จะต้องจัดการโดยกระบวนการ cleansing data ซึ่งอยู่ในส่วนหนึ่งของการทำ feature engineering

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

4️⃣ / 7️⃣ 3 วิธี หลักๆที่จะใช้จัดการข้อมูลในการทำ cleansing data ในการตรวจสอบ ค่าว่าง (Null) ของชุดข้อมูล ซึ่งจริงๆแล้วมีเทคนิคที่มากกว่านั้นที่สามารถจัดการได้ แต่ในโพสนี้จะพูดเฉพาะวิธีการจัดการค่าว่าง 3 วิธี คือ

5️⃣ / 7️⃣ การกำจัดข้อมูลในแถวทิ้งทั้งแถว (delete) เพื่อการวิเคราะห์ข้อมูล และ ประสิทธิภาพของ machine learning ดีขึ้น สามารถใช้วิธีการตัดข้อมูลบางส่วนที่ไม่สมบูรณ์ออกไป ถ้าตรวจสอบแล้วค่าว่างมันไม่มากจนทำให้เกิดการวิเคราะห์ที่ผิดไป ก็สามารถใช้วิธีการ ลบหรือตัดข้อมูลออกไปได้เลย

6️⃣ / 7️⃣ การเติมคำลงไปในช่องที่มันว่างอยู่ (fill) ในกรณีที่เราตรวจสอบข้อมูลแล้ว พบว่า column ที่มีข้อมูลเป็นประเภทหมวดหมู่ (Categories) มักจะเป็นข้อความสั้นๆ ก็สามารถพิจารณาการเติม คำที่ระบุให้เรารู้ความหมาย ของการเกิดค่าว่างนี้ก็ได้ (ส่วนใหญ่คนทำระบบ มักจะรู้ว่าเกิดข้อผิดพลาดจากอะไร (bug) เพราะสามารถตรวจสอบย้อนหลัง แต่จะค่อนข้างลำบาก) เช่นคำว่า ‘Other’

7️⃣ / 7️⃣ การเติมข้อมูลลงไปด้วยค่าทางสถิติ (Measures of central tendency) ในชีวิตจริง นั้นในข้อที่ 1 ข้อที่กล่าวไป ไม่สามารถใช้ได้เสมอไป เพราะอาจจะทำให้การฝึกฝน machine learning ผิดพลาดไป ถ้าสมมติว่า ข้อมูลที่มีเป็นค่าว่าง เกือบตลอดทั้งชุดข้อมูล ถ้าลบทิ้งไปเลยก็คงจะไม่เหลืออะไรให้วิเคราะห์ข้อมูล หรือสร้างเป็น model ของ machine learning ในทำนายกันอีกต่อไป การเติมข้อมูลลงไปด้วยค่าทางสถิติ ไม่ว่าจะเป็นค่า Mean Mode ซึ่งค่านี้ คือค่าเฉลี่ย หรือ ค่ากลางของชุดข้อมูลแม้ว่าการเติมข้อมูลด้วยค่าสถิติเข้าไปจะช่วยให้ชุดข้อมูลไม่เกิดค่าว่าง ใกล้เคียงกับความเป็นจริงมากขึ้น และ ไม่ต้องลบข้อมูลทิ้งออกไป แต่ก็ต้องพิจารณาของค่าการกระจายของข้อมูลด้วยว่าเป็นการกระจายตัวแบบปกติหรือไม่ (normal distribution) เพราะ machine learning ก็จะเกิดไบอัสอยู่ดี


อ่านแล้วฝากกดติดตามเพจ และ กด ads เป็นกำลังใจให้ผู้เขียนด้วยนะครับ

แวะมาทักทายกันได้
donate