Cover บทความ Data Cleansing

Data Cleansing คืออะไร? สำคัญอย่างไรกับการจัดการข้อมูล

mins read   1stCraft Team

องค์กรและบริษัทในทุกวันนี้เข้าใจกันแล้วว่า การใช้ข้อมูลและข้อมูลปริมาณมหาศาล (Big Data) ช่วยสร้างความได้เปรียบให้กับองค์กรได้ ทำให้แต่ละองค์กรต่างเก็บข้อมูลมาไว้กับตัวเองและพยายามใช้ฐานข้อมูลเหล่านั้นมาวิเคราะห์หา “Insight” ในการตัดสินใจและวางแผนต่อไป

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

แล้วคำว่า “Data Cleansing” หรือที่บางคนเรียกว่า “Data Cleaning” หมายถึงอะไร ข้อมูลสกปรกตรงไหน ทำไมเราจึงต้องทำความสะอาดก่อนใช้ บทความนี้จะช่วยอธิบายให้คุณเอง

Data Cleansing คืออะไร?

Data Cleaning หรือ Data Cleansing คืออะไร?

การทำความสะอาดข้อมูล หรือ “Data Cleansing” หมายถึง กระบวนการตรวจสอบ สะสาง แก้ไข หรือจัดรูปแบบข้อมูลให้อยู่ในสภาพที่พร้อมใช้งานที่สุด รวมไปถึงคัดกรองข้อมูลที่ไม่ถูกต้องหรือไม่จำเป็นออกไปจากชุดข้อมูลที่จะใช้วิเคราะห์หรือประมวลผล เพื่อให้ชุดข้อมูลที่จะใช้มีความสมบูรณ์ มีคุณภาพ พร้อมนำไปวิเคราะห์และใช้ประโยชน์ ซึ่งอาจเรียกอีกอย่างว่า เป็นการทำ “re-oganize” ข้อมูลใหม่ก็ได้ 

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

กรณีตัวอย่างความผิดพลาดในการบันทึกข้อมูล: การให้ rating กับร้านอาหารที่คนชื่นชอบ เราอาจได้ “คำตอบเดียวกัน” ในหลากหลายรูปแบบ เช่น Mc, Mcdonalds, แม็ค, ร้านแม็คโดนอลส์ เป็นต้น หากเราส่งข้อมูลเหล่านี้เข้าประมวลผล ระบบคงเข้าใจว่า เป็นคนละร้าน ผลลัพธ์ที่ประมวลผลได้คงไม่แม่นยำ เราจึงต้องทำ Data Cleansing เพื่อให้คำตอบเหล่านี้มีค่าเท่ากันหรือเป็นคำตอบเดียวกันก่อน 

ข้อมูลสกปรกตรงไหน? ทำไมต้องทำ Data Cleansing?

“ข้อมูลสกปรก” “ข้อมูลไม่สะอาด” นั้น จริงๆ แล้ว เป็นเพียงชื่อเล่นของข้อมูลที่เรายังไม่ได้จัดการและเตรียมให้พร้อมสำหรับการวิเคราะห์ข้อมูล ข้อมูลยังเป็นข้อมูล ไม่ได้สกปรกหรือเปื้อนอะไร แต่หมายถึง ข้อมูลที่มีรูปแบบที่ไม่สอดคล้องกัน หรือมีข้อผิดพลาดอื่นๆ ที่ต้องผ่านกระบวนการทำ Data Cleansing ก่อน 

นอกจากนี้ เหตุผลที่เราต้องทำ Data Cleansing ก็มีอีกหลายประการ ไม่ว่าจะเป็น…

  • เพื่อกำจัดข้อผิดพลาดของข้อมูลที่มาจากหลากหลายฐานข้อมูล 
  • ช่วยให้จับคู่ชุดข้อมูลกับการวิเคราะห์เพื่อหาคำตอบได้ง่ายขึ้น เร็วขึ้น
  • ช่วยให้เห็นรูปแบบของข้อมูลที่ผิดพลาดเพื่อป้องกันและปรับปรุงการนำเข้าข้อมูล เช่น การกรอกแบบฟอร์ม การคีย์ข้อมูลลงระบบ
  • ช่วยให้ได้ Insight หรือรายงาน (report) ที่แม่นยำ ทำให้ตัดสินใจได้รวดเร็วขึ้น
  • ช่วยให้ดึงข้อมูลออกมาใช้ได้ทันที พร้อมข้อมูลอยู่ในรูปแบบที่สมบูรณ์
  • การทำ Data Cleansing อาจหมายถึง การล้างข้อมูลที่หมดอายุ ซึ่งเกี่ยวข้องกับ พ.ร.บ. ข้อมูลส่วนบุคคล (PDPA)

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

ลักษณะข้อมูลแบบไหนที่ต้องทำ Data Cleansing?

ถึงแม้ว่า ลักษณะของข้อมูลที่เราจะทำความสะอาดหรือทำการ Cleansing จะขึ้นอยู่กับ Insight หรือคำตอบที่ต้องการ ทำให้ไม่ว่าจะเป็นข้อมูลแบบไหนก็ตามก็อาจต้องการทำความสะอาดก่อนเสมอ โดยมีลักษณะข้อมูลทั่วไปที่ต้องทำ Data Cleansing อยู่เสมอ 3 ลักษณะสำคัญด้วยกัน

1. ชุดข้อมูลที่ไม่ได้อยู่ในรูปแบบหรือไฟล์ประเภทเดียวกัน

กรณีนี้ อาจเกิดจากการที่มีข้อมูลจากหลากหลายฐานข้อมูล (database) เมื่อมาจากหลากหลายแหล่ง จึงมีโอกาสที่แต่ละแหล่งจะจัดเก็บข้อมูลกันคนละสกุลไฟล์ เช่น จัดเก็บข้อมูลเป็นไฟล์ .pdf ไฟล์ excel หรือสกุลไฟล์อื่นๆ ที่ไม่คุ้นเคย เมื่อจำเป็นต้องนำมาประมวลผลด้วยกัน จึงไม่สามารถทำได้ 

การทำ Data Cleansing สำหรับข้อมูลประเภทนี้ จึงเป็นการแปลงไฟล์ข้อมูลต่างๆ ให้เป็นไฟล์สกุลเดียวกัน เพื่อให้สามารถนำมาประมวลผลด้วยกันได้ นอกจากนี้ การจัดรูปแบบไฟล์ใหม่ อาจทำไปเพื่อลดการใช้พื้นที่จัดเก็บ เช่น การรวมไฟล์ข้อมูลเข้าไปไฟล์เดียว การแปลงข้อมูลมาอยู่ในรูปแบบไฟล์ที่กินพื้นที่น้อยกว่า

2. ข้อมูลไม่ได้ถูกจัดเก็บในรูปแบบที่ต้องการ

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

ยกตัวอย่างเช่น เราต้องการทราบร้านคู่แข่งในแต่ละเขต/อำเภอ แต่ข้อมูลที่มีอยู่นำเข้ามาจาก Open Source ที่แบ่งพื้นที่ตามพิกัด GPS (ละติจูด-ลองติจูด) เราจึงต้องแปลงข้อมูลที่ได้ให้เป็นแบบเขต/อำเภอ ก่อน 

หรืออีกตัวอย่างง่ายๆ คือ ข้อมูลไม่ได้ถูกเก็บอยู่ในไฟล์ที่สามารถส่งข้อมูลเข้าประมวลผลได้ เช่น ได้ข้อมูลเป็นไฟล์รูปภาพ (.jpg หรือ .png) อาจต้องแปลงเป็นไฟล์ข้อความหรือสคริปต์ (.csv, .tsv, .json, .xml) เพื่อให้พร้อมสำหรับการวิเคราะห์ก่อน  

3. ข้อมูลที่ไม่ถูกต้องหรือมีข้อผิดพลาดในการเก็บข้อมูล

ส่วนใหญ่ข้อมูลที่กรอกหรือนำเข้าสู่ระบบโดยคน อาจมีข้อผิดพลาด (human errors) บ้างเป็นธรรมดา เช่น การกรอกข้อมูลผิดช่อง การกรอกข้อมูลที่ไม่มีทางเป็นความจริง การกรอกข้อมูลที่ถูกต้องแต่ไม่ตรงกับข้อมูลหลัก (ตัวอย่างชื่อร้านเดียวกัน แต่เขียนหรือสะกดต่างกัน) ฯลฯ ทำให้ได้ชุดข้อมูลที่เมื่อประมวลผลออกมาแล้วได้ Insight หรือคำตอบที่ไม่แม่นยำหรือผิดจากความจริงไป

นอกจากข้อผิดพลาดที่เกิดขึ้นจากคนแล้ว ยังอาจมีความคลาดเคลื่อนของระบบได้ เช่น การติดตามกิจกรรมต่างๆ (event tracking) ที่เกิดขึ้นในระบบ ไม่ได้ถูกบันทึกตามเวลาจริง เพราะอาจมีความล้าช้าจากการส่งข้อมูล หรือเกิดความขัดข้องอื่นๆ 

กระบวนการทำ Data Cleansing มีอะไรบ้าง?

1. กำจัดข้อมูลที่ซ้ำซ้อนและข้อมูลที่ไม่เกี่ยวข้องออก

สิ่งแรกที่ต้องทำในกระบวนการทำ Data Cleansing คือ การกำจัดข้อมูลที่ซ้ำซ้อนและข้อมูลที่ไม่เกี่ยวข้องเพื่อลดภาระในการประมวลผลและให้ได้ข้อมูลที่ ‘เกลี้ยงเกลา’ ที่สุด

ข้อมูลที่ซ้ำซ้อน (duplicated data) นั้น มักจะได้มาจากการกรอกข้อมูลซ้ำซ้อนของคน การดึงข้อมูลจากหลากหลายแหล่ง หลายแผนก หรือการรวมข้อมูลภายในและข้อมูลจาก Open source เพราะมีโอกาสสูงที่แหล่งข้อมูลแต่ละแหล่งจะขอ/คีย์ข้อมูลชุดเดียวกัน หากไม่นำข้อมูลที่ซ้ำซ้อนออกก่อนที่จะวิเคราะห์ข้อมูล Insight ที่ได้อาจจะไม่ตรงกับความเป็นจริง 

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

2. แก้ไขข้อผิดพลาดในเชิงโครงสร้างหรือรูปแบบ

ขั้นตอนต่อมาของการทำ Data Cleansing คือ การจัดการกับข้อมูลที่ผิดพลาดในเชิงโครงสร้างหรือรูปแบบ (structural errors) เช่น ข้อมูลข้อมูลหนึ่งหรือคำคำหนึ่งที่มีค่าเท่ากัน ระบบอาจมองว่าเป็นข้อมูลคนละตัว การทำ Data Cleansing ในขั้นตอนนี้คือการกำหนดให้ข้อมูลที่หมายถึงสิ่งเดียวกันมีค่าเท่ากัน ยกตัวอย่างเช่น กำหนด “N/A” กับ “Not Applicable” ให้มีค่าเท่ากัน รวมไปถึงการกำหนดการคำนวณทศนิยม ว่าต้องการเอากี่หลักหรือต้องการปัดขึ้นหรือลง

3. กรองข้อมูลที่มีค่าผิดปกติออกจากชุดข้อมูล

บางทีข้อมูลที่ได้ โดยเฉพาะข้อมูลที่นำเข้าโดยมนุษย์ เช่น กรอกข้อมูล พิมพ์ ฯลฯ มีโอกาสที่จะได้ค่าที่ไม่มีทางเป็นไปได้ ยกตัวอย่างเช่น จำนวนสมาชิกในครอบครัว 500 คน ซึ่งระบบไม่รู้ว่าเป็นข้อมูลที่เกินจริง หรืออัตราการซื้อสินค้าที่เกินสินค้าในคลัง หรือตัวเลขอื่นๆ ที่น้อยหรือมากกว่าที่ควรจะเป็น การทำ Data Cleansing ในขั้นตอนนี้ คือ การกำจัดช่วงของค่าหรือตัวเลขที่ไม่มีทางเป็นจริงออกในคราวเดียวด้วยการกำหนด “Outliner” ขีดเส้นกั้นเอาเฉพาะช่วงข้อมูลที่ต้องการ 

4. จัดการกับข้อมูลที่หายไปหรือไม่สมบูรณ์

แน่นอนว่า หากมีข้อมูลที่หายไป ผลลัพธ์หรือคำตอบจากการวิเคราะห์ย่อมเปลี่ยนไป ความแม่นยำลดลง แต่ยิ่งไปกว่านั้น หากมีข้อมูลที่หายไป อัลกอริธึม (algorithm) หรือระบบที่ใช้วิเคราะห์อาจไม่ทำงานได้ ดังนั้น เราจึงต้องจัดการกับข้อมูลที่หายไปก่อนที่จะทำการประมวลผลข้อมูล โดยวิธีที่อาจจะทำได้ก็อย่างเช่น

  1. ตัดข้อมูลที่หายไปออกจากการประมวลผล ซึ่งหากใช้วิธีนี้ อาจจะต้องใคร่ครวญดีๆ ก่อนว่าคุ้มค่าที่จะทำหรือไม่ เพราะจะทำให้ปัจจัยในการประมวลผลหายไปหนึ่งปัจจัย คำตอบที่ได้ก็จะไม่ละเอียดเท่าตอนที่มีปัจจัยให้วิเคราะห์ครบถ้วน
  2. ใส่หรือแทนค่าข้อมูลที่หายไป ซึ่งอาจได้จากการไปหาข้อมูลเพิ่มหรือจากการสันนิษฐาน อย่างไรก็ตาม หากข้อมูลหายไปเป็นจำนวนมาก อาจต้องใช้เวลาในการใส่ข้อมูลใหม่
  3. เปลี่ยนวิธีประมวลผลหรือใช้ชุดข้อมูลอื่นๆ ที่สามารถให้ Insight ได้ใกล้เคียง

5. ตรวจสอบความถูกต้อง (QA) 

ขั้นตอนสุดท้ายของการทำ Data Cleansing คือ ขั้นตอนการตรวจสอบชุดข้อมูลว่าได้ชุดข้อมูลที่สมบูรณ์พร้อมสำหรับการวิเคราะห์เพื่อให้ได้คำตอบที่ต้องการแล้วหรือไม่ โดยเราอาจตรวจสอบได้ง่ายๆ ด้วยการถามคำถามกับตัวเอง เช่น

  • ชุดข้อมูลที่ได้มีความสมเหตุสมผลหรือไม่
  • ข้อมูลอยู่ในรูปแบบที่เหมาะสมสำหรับการหาคำตอบหรือไม่
  • ชุดข้อมูลที่ได้สามารถให้คำตอบหรือ Insight ที่ต้องการได้จริงหรือไม่

หากไม่แน่ใจ ว่าชุดข้อมูลที่ได้สามารถให้คำตอบได้ อาจต้องทำความสะอาดข้อมูลอีกรอบ บิด หรือเลือกใช้ชุดข้อมูลชุดใหม่ในการวิเคราะห์

ทำความสะอาดข้อมูลอย่างไรจึงจะ “สะอาด” กับความท้าทายของการทำ Data Cleansing จริงในองค์กร

แน่นอนว่าการทำความสะอาดข้อมูล มีกระบวนการคร่าวๆ อย่างที่กล่าวไปในหัวข้อข้างต้น แต่การจะทำความสะอาดข้อมูลหรือ Data Cleansing ให้พร้อมใช้งานก็ยังมีอีกหลายหลายวิธี 

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

ความท้าทายข้อต่อมา คือ ปริมาณข้อมูล ยิ่งข้อมูลมีปริมาณมาก ก็มีโอกาสที่จะมีข้อผิดพลาดสูง นอกจากนี้ อาจทำความสะอาดข้อมูลอาจไม่เสร็จในครั้งเดียว เมื่อมาถึงขั้นตอน QA แล้ว เราอาจพบว่า วิธีการทำความสะอาดที่ใช้ยังไม่สามารถนำไปสู่ Insight ที่ต้องการก็ได้

โดยหนึ่งในวิธีแก้ไขและรับมือกับความท้าทายของการทำ Data Cleansing เบื้องต้น คือ การสร้างระบบเฉพาะ (customization) ขึ้นให้เหมาะกับการใช้ข้อมูลตั้งแต่ต้น ไม่ว่าจะเป็นประเภทไฟล์ วิธีการเก็บข้อมูล ระบบวิเคราะห์ประมวลผลอัตโนมัติ

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