ยินดีต้อนรับสู่ศิลปะแห่งการทำ Feature Engineering!
สวัสดี! ยินดีต้อนรับเข้าสู่ส่วนที่สร้างสรรค์ที่สุดส่วนหนึ่งของข้อสอบ Exam PA ในบทนี้เราจะมาดูกันเรื่อง การสร้างตัวแปร (Features) จากข้อมูลที่มีอยู่ ถ้าเปรียบ Data Science เหมือนกับการทำอาหาร ข้อมูลดิบก็คงเป็นวัตถุดิบพื้นฐาน (เช่น แป้งและไข่) ส่วน Feature Engineering ก็คือกระบวนการตีแป้ง นวด และปรุงรส เพื่อให้ได้อาหารรสเลิศออกมานั่นเอง
เป้าหมายในส่วนนี้ง่ายมาก คือการปรับเปลี่ยนตัวแปรดิบของเราให้อยู่ในรูปแบบที่ช่วยให้โมเดลการพยากรณ์ของเรา "มองเห็น" รูปแบบความสัมพันธ์ต่างๆ ได้ชัดเจนขึ้น ไม่ต้องกังวลนะถ้าตอนนี้รู้สึกว่ามันยังดูเป็นนามธรรมไปสักหน่อย เดี๋ยวเราค่อยๆ เจาะลึกไปทีละขั้นตอนกัน!
1. Feature Engineering คืออะไร?
Feature Engineering คือกระบวนการใช้ความรู้เฉพาะทาง (Domain Knowledge) ในการสร้างตัวแปรใหม่ (Features) จากตัวแปรที่คุณมีอยู่แล้ว ต่อให้เป็นอัลกอริทึม Machine Learning ที่ทรงพลังที่สุด ก็อาจจะหาแบบแผนไม่เจอหากข้อมูลไม่ได้ถูกนำเสนอในรูปแบบที่เหมาะสม
เปรียบเทียบให้เห็นภาพ: ลองนึกภาพว่าคุณกำลังพยายามอ่านหนังสือในห้องมืดๆ คุณอาจจะเห็นแค่รูปร่างของมัน แต่ไม่อาจมองเห็นตัวอักษรได้ชัดเจน การทำ Feature Engineering ก็เหมือนกับการเปิดไฟให้สว่างขึ้น เพื่อให้โมเดลสามารถอ่านข้อมูลได้ง่ายนั่นเอง
ทบทวนสั้นๆ: เราสร้าง Features ขึ้นมาเพื่อ:
• ดึงความสัมพันธ์แบบไม่เป็นเส้นตรง (Non-linear) ออกมาให้ชัดขึ้น
• ทำให้ข้อมูลที่ซับซ้อนดูเรียบง่ายขึ้น
• ทำให้โมเดลอธิบายผลลัพธ์ให้ผู้มีส่วนเกี่ยวข้องเข้าใจได้ง่ายขึ้น
2. การสร้างตัวแปรบ่งชี้ (Indicator/Dummy Variables)
โมเดลส่วนใหญ่ (เช่น Linear Regression หรือ GLMs) ไม่สามารถจัดการกับ "ข้อความ" ได้โดยตรง พวกมันต้องการตัวเลข ตัวแปรบ่งชี้ (มักเรียกว่า Dummy variables) จึงเข้ามาเปลี่ยนป้ายกำกับที่เป็นหมวดหมู่ให้กลายเป็นเลข 0 และ 1
วิธีการทำงาน:
ถ้าคุณมีตัวแปร "สี" ที่มี 3 ระดับ คือ แดง, น้ำเงิน, และ เขียว คุณก็สร้างคอลัมน์แยกสำหรับแต่ละสี ถ้าเป็นสีแดง คอลัมน์ "แดง" จะได้ค่า 1 ส่วนสีอื่นจะเป็น 0
กับดักเรื่อง "Reference Level":
จุดสำคัญ: หากคุณมี n หมวดหมู่ โดยปกติคุณต้องการตัวแปร Dummy เพียง n - 1 ตัวเท่านั้น หมวดหมู่ที่หายไปจะกลายเป็น Reference Level (ระดับอ้างอิง)
ตัวอย่าง: ถ้าคุณรู้ว่ารถคันหนึ่ง "ไม่ใช่สีแดง" และ "ไม่ใช่สีน้ำเงิน" มันก็ "ต้องเป็นสีเขียว" อยู่แล้ว ดังนั้นเราจึงไม่จำเป็นต้องสร้างคอลัมน์ "สีเขียว" การฝืนใส่เข้าไปอาจทำให้เกิดปัญหา Multicollinearity ซึ่งอาจส่งผลให้โมเดลทำงานผิดพลาดได้!
ข้อผิดพลาดที่ควรหลีกเลี่ยง: อย่าลืมว่าคุณเลือกหมวดหมู่ไหนเป็นค่าอ้างอิง! เพราะสัมประสิทธิ์ (Coefficients) ของโมเดลทั้งหมดจะถูกตีความเปรียบเทียบกับค่าฐานนั้นเสมอ
3. การทำ Binning (Discretization)
Binning คือกระบวนการนำตัวแปรต่อเนื่องที่เป็นตัวเลข (เช่น อายุ) มาแบ่งเป็นกลุ่มๆ (เช่น "วัยรุ่น," "วัยทำงาน," "วัยสูงอายุ")
ทำไมต้องทำแบบนี้?
บางครั้งความสัมพันธ์ระหว่างตัวแปรกับเป้าหมายไม่ได้เป็นเส้นตรงเสมอไป ตัวอย่างเช่น ค่าเคลมประกันสุขภาพอาจจะสูงในเด็กทารก ต่ำในวัยรุ่น และกลับมาสูงอีกครั้งในวัยสูงอายุ โมเดลเส้นตรงแบบธรรมดาอาจมองไม่เห็นความสัมพันธ์แบบ "รูปตัว U" นี้ การทำ Binning แบ่งช่วงอายุจะช่วยให้โมเดลสามารถกำหนดค่าน้ำหนักที่แตกต่างกันให้แต่ละช่วงได้
รู้หรือไม่? แม้การทำ Binning จะช่วยให้ผู้บริหารเข้าใจได้ง่ายขึ้น แต่คุณก็จะสูญเสียรายละเอียดไปบางส่วน เช่น ถ้าคุณทำ Binning "รายได้" โมเดลก็จะมองว่าคนที่มีรายได้ 50,001 บาท กับคนที่มีรายได้ 99,999 บาท นั้นเหมือนกันเป๊ะ เพราะอยู่ในถัง "รายได้ปานกลาง" เดียวกัน
4. ตัวแปรปฏิสัมพันธ์ (Interaction Terms)
เรื่องนี้สำคัญมากสำหรับ Exam PA! Interaction จะเกิดขึ้นเมื่อผลกระทบของตัวแปรหนึ่งขึ้นอยู่กับระดับของอีกตัวแปรหนึ่ง
สูตรทางคณิตศาสตร์: \( Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \beta_3 (X_1 \times X_2) \)
ตัวอย่างในชีวิตจริง: ลองคิดถึงเรื่อง การออกกำลังกาย กับ การคุมอาหาร ทั้งสองอย่างดีต่อสุขภาพ แต่ถ้าคุณออกกำลังกาย "และ" กินอาหารที่มีประโยชน์ ประโยชน์ที่ได้รับรวมกันอาจมากกว่าผลรวมของทั้งสองอย่างแยกกัน ความ "บูสต์" ที่เพิ่มขึ้นมานั้นแหละคือ Interaction effect
เปรียบเทียบให้เห็นภาพ: กาแฟกับน้ำตาล กาแฟมีรสขม น้ำตาลมีรสหวาน เมื่อนำมาผสมกันจะได้รสชาติที่แตกต่างออกไปจากการดื่มกาแฟแล้วค่อยไปกินน้ำตาลทีหลัง มันเกิดการ "โต้ตอบ" กันจนเปลี่ยนประสบการณ์รสชาติไปเลย
5. การแปลงทางคณิตศาสตร์ (Mathematical Transformations)
บางครั้งข้อมูลดิบอาจจะ "กระจุกตัว" หรือมีความโค้งงอ เราจึงใช้คณิตศาสตร์มาช่วย "ยืดให้ตรง"
การแปลง Log (Log Transformation)
เรามักใช้ Logarithm \( \log(x) \) เมื่อข้อมูลมีความเบ้ขวา (Right-skewed) (หมายความว่ามีค่าที่สูงมากๆ อยู่จำนวนหนึ่ง เช่น ราคาบ้าน หรือเงินเดือน CEO) การใช้ Log จะช่วย "ดึง" ค่าที่โดดออกไปเหล่านั้นกลับเข้ามา และช่วยกระจายค่าที่เล็กๆ ให้ชัดเจนขึ้น
การแปลงแบบ Polynomial
ถ้าความสัมพันธ์ดูเหมือนเส้นโค้ง เราอาจเพิ่มตัวแปรยกกำลังสองเข้าไป: \( X^2 \)
• ตัวอย่าง: ระยะทางที่รถใช้หยุดรถ ขึ้นอยู่กับ "กำลังสอง" ของความเร็ว
เทคนิคช่วยจำ: ใช้ Log สำหรับข้อมูลที่มีหาง Long! ถ้าข้อมูลของคุณมีหางยาวทางด้านขวา การทำ Log transformation คือเพื่อนที่ดีที่สุดของคุณ
6. การจัดการกับข้อมูลวันที่และเวลา
วันที่ดิบๆ อย่าง "2023-10-15" ไม่มีประโยชน์อะไรกับโมเดล Regression เลย เราต้องสกัดเอา "เนื้อหา" จากมันออกมา!
Features ทั่วไปที่มักจะสกัดออกมา:
• วันในสัปดาห์: ยอดขายในวันเสาร์สูงกว่าวันอื่นไหม?
• เดือน/ฤดูกาล: คนซื้อเครื่องทำความร้อนเยอะขึ้นในช่วงฤดูหนาวใช่ไหม?
• ตัวบ่งชี้วันหยุด: เป็นวันหยุดราชการหรือไม่ (binary 0/1)?
• เวลาที่ผ่านไป: ผ่านมากี่วันแล้วนับจากการซื้อครั้งล่าสุดของลูกค้า?
7. สรุปประเด็นสำคัญ
กล่องทบทวนด่วน:
• Dummies: เปลี่ยนข้อความเป็น 0/1 อย่าลืมกฎ n-1!
• Binning: จัดกลุ่มตัวเลขเป็นถังๆ เพื่อดึงความสัมพันธ์ที่ไม่เป็นเส้นตรง
• Interactions: ใช้เมื่อผลของ X ขึ้นอยู่กับระดับของ Y
• Logs: ใช้แก้ปัญหาข้อมูลเบ้ขวาและทำให้ค่าความแปรปรวนคงที่
• Dates: แยกส่วนวันที่ออกมาเป็น "วัน" หรือ "เดือน"
คำแนะนำสุดท้าย: ในการสอบ PA จงอธิบายเหตุผลเสมอว่า ทำไม คุณถึงสร้าง Feature นี้ขึ้นมา อย่าแค่ทำเพราะทำได้ แต่ให้ถามตัวเองว่า "สิ่งนี้ช่วยให้โมเดลอธิบายตัวแปรเป้าหมายได้ดีขึ้นจริงไหม?" ถ้าคำตอบคือใช่ คุณมาถูกทางแล้ว!
ฝึกฝนต่อไป! Feature Engineering คือจุดที่คุณจะได้โชว์เซนส์ของการเป็นนักคณิตศาสตร์ประกันภัยออกมาได้อย่างเต็มที่ คุณทำได้อยู่แล้ว!