Data Preparation คือ อะไร ?

Data Preparation อาจเป็นขั้นตอนที่ยากและใช้เวลามากที่สุดของ ML (Machine Learning) Projects เนื่องจากชุดข้อมูลแต่ละชุดมีความแตกต่างกันสำหรับแต่ละ Project อย่างไรก็ตาม มีความเหมือนกันใน Concept ของการเตรียมข้อมูล เพื่อใช้ใน Predictive (ML) Models จึงสามารถกำหนดขั้นตอนที่ใช้เป็นแนวทางในการดำเนินการได้
ใน Blog นี้ จะพูดถึงขั้นตอนการเตรียมข้อมูล (Data Preparation) มีเนื้อหาดังนี้
Applied ML Process
แต่ละ ML Project จะมีความแตกต่างกัน เนื่องจากข้อมูลที่ใช้ สิ่งนี้ทำให้แต่ละโครงการมีเอกลักษณ์เฉพาะตัว ไม่มีใครสามารถบอกได้ว่าผลลัพธ์ที่ดีที่สุดคืออะไร? หรือจะใช้ Algorithm ใด เพื่อให้ประสบความสำเร็จ เราจำเป็นต้องสร้าง Baseline ในการวัดประสิทธิภาพ (จุดอ้างอิง) เพื่อเปรียบเทียบ Models ทั้งหมด และ ค้นหาว่า Algorithms ใด ทำงานได้ดีที่สุดสำหรับชุดข้อมูลของเรา
มี Literatures มากมายเกี่ยวกับ Applied ML ที่สามารถบอกให้เรารู้เกี่ยวกับเทคนิคต่างๆ ที่ใช้ในการประเมิน Model และ Algorithm ที่มีประสิทธิภาพ
แม้ว่าโครงการของเราจะไม่เหมือนใคร แต่ขั้นตอนที่นำไปสู่ผลลัพธ์ที่ดีที่สุดจะเหมือนกัน บางครั้งเรียกสิ่งนี้ว่า “Applied ML Process”, “Data Science Process” หรือ ชื่อดั้งเดิม คือ “Knowledge Discovery in Databases” (KDD)

กระบวนการของ Applied ML ประกอบด้วยขั้นตอนต่างๆ ดังนี้
ขั้นตอนที่ 1: กำหนดปัญหา (Define Problem)
ขั้นตอนที่ 2: เตรียมข้อมูล (Data Preparation)
ขั้นตอนที่ 3: ประเมินแบบจำลอง (Evaluate Model)
ขั้นตอนที่ 4: เลือกโมเดลขั้นสุดท้าย (Finalize Model)
ขั้นตอนที่ 1: กำหนดปัญหา
- เพื่อเลือก Framework การทำงานของ Predictive Model เช่น เป็น Classification หรือ Regression?
- ขั้นตอนนี้ยังเกี่ยวข้องกับการรวบรวมข้อมูลที่เชื่อว่าจะเป็นประโยชน์ในการทำนาย และกำหนดรูปแบบที่ชัดเจนในการทำนาย นอกจากนี้ยังอาจเกี่ยวข้องกับการพูดคุยกับผู้มีส่วนได้ส่วนเสีย (Stakeholders) ในโครงการและบุคคลอื่น ๆ ที่มีความเชี่ยวชาญ (Domain Experts)
- ในขั้นตอนนี้ ยังเป็นการความเข้าใจ ตรวจสอบข้อมูล สำรวจข้อมูล โดยสรุปผลในรูปแบบสถิติ และแสดงข้อมูลเป็นภาพ (Data Visualization)
ขั้นตอนที่ 2: เตรียมข้อมูล (Data Preparation)
- เป็นการแปลงข้อมูลดิบ (Raw Data) ให้อยู่ในรูปแบบที่สามารถใช้ในการสร้าง Model ได้ (รายละเอียดใน Section ถัดไป)
ขั้นตอนที่ 3: ประเมินแบบจำลอง (Evaluate Model)
- ต้องออกแบบวิธีการที่มีประสิทธิภาพในการประเมินแบบจำลอง เพื่อให้แน่ใจว่าผลลัพธ์ที่ได้มานั้นเชื่อถือได้ และ ใช้ในการตัดสินใจเลือกแบบจำลองที่เหมาะสมที่สุด
- เกี่ยวข้องกับงานต่างๆ เช่น การเลือก Performance Metric สำหรับการประเมินแบบจำลอง การกำหนด Baseline ในการประเมินแบบจำลอง และเทคนิคการสุ่มตัวอย่างสำหรับการแบ่งข้อมูลออกเป็น Training และ Test Sets ที่ใช้ทดสอบกับ Final Model
- ในการประเมินประสิทธิภาพของแบบจำลอง สำหรับชุดข้อมูลขนาดใหญ่มาก อาจทำ train-test split ครั้งเดียว หรือ โดยทั่วไป (ในชุดข้อมูลขนาดเล็กกว่า) สามารถใช้ k-fold cross-validation เป็นเทคนิคการสุ่มตัวอย่างข้อมูล โดยเป็นกระบวนการซ้ำๆ เพื่อให้ผลลัพธ์เชื่อถือได้
- และ ขั้นตอนนี้ยังเกี่ยวข้องกับการได้มาซึ่ง Model ที่มีประสิทธิภาพสูงสุด เช่น Hyperparameter Tuning และ Ensemble Models ต่างๆ
ขั้นตอนที่ 4: เลือกโมเดลขั้นสุดท้าย (Finalize Model)
- เมื่อทำการ Evaluate Model แล้ว จะเป็นการเลือกแบบจำลองที่จะใช้สำหรับโครงการ อาจเกี่ยวข้องกับการประเมินเพิ่มเติมของแบบจำลองที่อยู่ใน Shortlisted Candidates โดยใช้ข้อมูล Hold out validation dataset หรือ เลือกผ่านเกณฑ์เฉพาะ เช่น ความซับซ้อนของแบบจำลอง
- นอกจากนี้ยังอาจเกี่ยวข้องกับการประเมินประสิทธิภาพของแบบจำลองโดย Stakeholders (อาจมี Metrics ใน Domain ที่ต้องการวัด)
- มีงานที่เกี่ยวข้องกับ Deploy Model ไปใช้บน Production เช่น การรวมเข้ากับ Software Project หรือ Production System และการ Monitoring และ Maintenance Model

ในส่วนต่อไปจะพูดถึงรายละเอียดของ Data Preparation
Data Preparation คืออะไร ?
ใน Predictive Model Project เช่น Classification หรือ Regression ข้อมูลดิบจะไม่สามารถนำมาใช้โดยตรงได้ เช่น
- ML Algorithms ต้องการข้อมูลที่เป็นตัวเลข
- ML Algorithms บางอันมีเงื่อนไขเฉพาะเกี่ยวกับข้อมูล
- Noise และ Error ในข้อมูลอาจต้องได้รับการแก้ไข
- ความสัมพันธ์แบบไม่เชิงเส้นที่ซับซ้อน อาจจำเป็นต้องนำออกจากข้อมูล
เหตุนี้ ข้อมูลดิบจึงต้องได้ถูกทำ Pre-processing ก่อนที่จะนำไปใช้เพื่อ Train และ Evaluate ML Models ขั้นตอนนี้เรียกว่า “Data Preparation" หรือ ยังมีชื่ออื่นๆ อีก เช่น “Data Wrangling”, “Data Cleaning”, “Data Pre-processing" และ “Feature Engineering" บางชื่ออาจเหมาะกับงานย่อยใน Data Preparation Process
Data Preparation คือ การ Transform ข้อมูลดิบให้อยู่ในรูปแบบที่เหมาะสมกับการสร้างแบบจำลอง
มีงานทั่วๆ ไป ที่ต้องทำระหว่างขั้นตอนการเตรียมข้อมูล ได้แก่
- Data Cleaning: การระบุและแก้ไขข้อผิดพลาดในข้อมูล
- Feature Selection: การระบุตัวแปรอินพุตที่เกี่ยวข้องกับงานมากที่สุด
- Data Transforms: การเปลี่ยนมาตราส่วนหรือการกระจายของตัวแปร
- Feature Engineering: สร้างตัวแปรใหม่จากข้อมูลที่มีอยู่
- Dimensionality Reduction: การลดมิติของข้อมูล
แต่ละงานเหล่านี้ จะมี Algorithms เฉพาะ
การเตรียมข้อมูลไม่ได้ดำเนินการแบบสุ่มสี่สุ่มห้า
ในบางกรณี ตัวแปรต้องได้รับการเข้ารหัส (Encoded) หรือ แปลง (Transform) ก่อนที่จะสามารถใช้ ML Algorithms เช่น การแปลง String เป็น Numeric การทำ Scaling (อาจเป็นหรือไม่เป็นประโยชน์กับ Algorithm ก็ได้ ขึ้นกับกรณี)
ปรัชญาของการเตรียมข้อมูล คือ การค้นพบวิธีที่ดีที่สุดในการเปิดเผยโครงสร้างพื้นฐานของปัญหาต่อ ML Algorithms (เป็น Guideline)
อาจจะซับซ้อนกว่าที่เห็นในครั้งแรก เช่น ตัวแปรอินพุตที่แตกต่างกันอาจต้องการวิธีการเตรียมข้อมูลที่แตกต่างกัน นอกจากนี้ ตัวแปรหรือชุดย่อยที่แตกต่างกันของตัวแปรอินพุตอาจต้องการลำดับวิธีการเตรียมข้อมูลที่แตกต่างกัน
อาจรู้สึกเป็นเรื่องยาก เนื่องจากมีวิธีจำนวนมาก ซึ่งแต่ละวิธีอาจมีข้อกำหนดที่เฉพาะเจาะจง อย่างไรก็ตาม ML Process ในขั้นตอนก่อนและหลังการเตรียมข้อมูล จะบอกได้ว่าควรใช้เทคนิคใด

การเลือกเทคนิคในการทำ Data Preparation ?
เป็นคำถามที่ท้าทาย แต่หากพิจารณาการเตรียมข้อมูลในบริบทของโครงการทั้งหมด จะตรงไปตรงมามากขึ้น ในการสร้าง Predictive Model ทั้งขั้นตอนก่อนและหลัง จะบอกให้ทราบถึงการเตรียมข้อมูลที่จำเป็น
ก่อนการเตรียมข้อมูลจะเกี่ยวข้องกับการกำหนดปัญหา ซึ่งมีงานย่อยจำนวนมาก เช่น
- รวบรวมข้อมูลที่เกี่ยวข้อง
- หารือกับผู้เชี่ยวชาญ (Domain Experts)
- เลือกตัวแปรเพื่อใช้เป็นอินพุตและเอาต์พุตสำหรับ Predictive Model
- ตรวจสอบข้อมูลที่รวบรวมไว้
- สรุปข้อมูลที่รวบรวมได้ด้วยวิธีทางสถิติ
- การแสดงผลข้อมูลด้วยภาพ โดยใช้พล็อตและแผนภูมิ
Information ที่ได้จาก Data สามารถใช้ในการกำหนดวิธีการเตรียมข้อมูล
เช่น การแปลงข้อมูล (Transform) อาจช่วยระบุว่าตัวแปรมีค่าผิดปกติหรือไม่ สิ่งนี้สามารถช่วยในการทำ Data Cleaning นอกจากนี้ยังอาจให้ข้อมูลเชิงลึกเกี่ยวกับ Probability Distribution และช่วยให้เราเลือกวิธีการแปลงข้อมูลที่เหมาะสม
วิธีการทางสถิติ เช่น สถิติเชิงพรรณนา สามารถใช้เพื่อกำหนดว่าอาจต้องดำเนินการทำ Scaling หรือไม่ การทดสอบสมมติฐานทางสถิติสามารถใช้เพื่อตรวจสอบว่าตัวแปรตรงกับการแจกแจงความน่าจะเป็นที่กำหนดหรือไม่
Pairwise Plots และ ค่าทางสถิติ สามารถใช้เพื่อพิจารณาว่าตัวแปรเกี่ยวข้องกันหรือไม่ มากน้อยเพียงใด ให้ข้อมูลเชิงลึกว่าตัวแปรใดที่ซ้ำซ้อน หรือไม่เกี่ยวข้องกับตัวแปร Target
เหตุนี้ จึงมีความเกี่ยวข้องกันอย่างมากระหว่าง "กำหนดปัญหา" และ "การเตรียมข้อมูล"
นอกจากนี้ยังมีความเกี่ยวข้องกันระหว่าง "การเตรียมข้อมูล" และ "การประเมินแบบจำลอง"
การประเมินแบบจำลอง จะเกี่ยวข้องกับงานย่อย เช่น
- เลือก Performance Metrics สำหรับประเมินประสิทธิภาพของ Model
- เลือก Model ที่จะทำการประเมิน
- เลือก Algorithm ที่จะทำการประเมิน
- ปรับ Hyperparameters ของ Algorithm
- รวม (Ensemble) Predictive Models
Information ที่ได้เกี่ยวกับ Algorithms ที่ทำงานได้ดีสามารถนำไปใช้ในการกำหนดค่าของวิธีการเตรียมข้อมูลได้ เช่น Algorithm อาจคาดหวังเกี่ยวกับประเภทและรูปแบบของตัวแปรอินพุตในข้อมูล อาจต้องกำหนดให้ตัวแปรมีการแจกแจงความน่าจะเป็นเฉพาะ การนำตัวแปรอินพุตที่สัมพันธ์กัน และ/หรือ การนำตัวแปรที่ไม่เกี่ยวข้องกับตัวแปร Target ออก
การเลือก Performance Metrics และ การวัดอย่างรอบคอบ (กับตัวแปร Target) เพื่อให้เป็นไปตามความคาดหวัง เช่น การให้คะแนน Regression Model ตามข้อผิดพลาดในการคาดคะเนโดยใช้หน่วยวัดเฉพาะ ซึ่งต้องมีทำ Inverse Transform จากตัวแปรที่ใช้สร้างแบบจำลอง
ตัวอย่างเหล่านี้ แสดงให้เห็นว่าการเตรียมข้อมูล จะเป็นขั้นตอนสำคัญใน ML Projects (Predictive Model) ซึ่งได้รับอิทธิพลอย่างมากจากงานที่ดำเนินการทั้งก่อนและหลังการเตรียมข้อมูล จะเห็นว่า ในการสร้าง Predictive Model จะเป็นกระบวนการที่วนซ้ำ (Iterative) โดยธรรมชาติ
******
ข้อมูลอ้างอิง - https://machinelearningmastery.com/what-is-data-preparation-in-machine-learning/