Feature Selection Techniques in Machine Learning

Paul
KBTG Life
Published in
3 min readMay 29, 2023

ในการสร้าง Machine Learning Model นั้น เป็นไปได้ยากมากที่ฟีเจอร์ทุกตัวจะมีประโยชน์ อีกทั้งยังอาจจะมีความซ้ำซ้อนกับ Feature ตัวอื่นๆ อีก การใช้ Feature ทั้งหมดในการสร้าง Model จึงอาจเป็นการเพิ่ม Complexity ให้กับ Model โดยใช่เหตุ ดังนั้นเราจำเป็นที่จะต้องเลือก Feature ก่อนที่เริ่มสร้าง Model

สวัสดีค่ะทุกคน วันนี้เราจะมาแชร์วิธีการเลือก Feature เพื่อใช้ในการทำ Machine Learning Model กันนะคะ โดยในบทความนี้จะ Cover ทั้งหมด 3 เทคนิค ดังนี้

  • Filter Methods
  • Wrapper Methods
  • Embedded Methods

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

1. Filter Methods

Feature จะถูก Filter จาก Metric อะไรบางอย่าง (เช่น Correlation) โดยไม่ได้ใช้ Predictive Model เข้ามาเกี่ยวข้อง จากประสบการณ์ในการทำ Machine Learning Model กับหลายๆ โจทย์ วิธีนี้ถือเป็น Method ที่ Implement ง่ายและเร็วกว่าอันอื่นในกรณีที่ Feature มีจำนวนเยอะมาก ยกตัวอย่างเช่น

Correlation Coefficient

Correlation คือการวัด Linear Relationship ระหว่างตัวแปรตั้งแต่ 2 ตัวขึ้นไป Logic ของการใช้ Correlation ในการเลือก Feature คือ Feature ที่ดีควรจะ Correlate กับ Target หรือ Label ของ Model แต่ไม่ควร Correlate กันเองระหว่าง Feature เพราะหาก 2 Feature Correlate กันเอง เราสามารถ Predict Feature อันนึงจากอีกอันนึงได้ ดังนั้นถ้า Feature Correlate กัน เราจะทำการ Keep ไว้แค่ 1 อันเท่านั้น โดยในที่นี้เราจะใช้เป็น Pearson Correlation

Source: vertica.com

เราจำเป็นที่จะต้อง Set Absolute Value ขึ้นมาตัวนึง เพื่อใช้เป็น Threshold ในการบอกว่า Feature Correlate กันหรือไม่ เช่น เราอาจจะใช้ |0.5| เป็น Threshold ดังนั้นจากภาพด้านบน จะเห็นว่า Fare Variable กับ Pclass Variable มีความ Correlate กันแบบ Negative Correlation ฉะนั้นก่อนสร้าง Model เราจำเป็นต้อง Remove Feature ตัวใดตัวนึงออกจาก Dataset ก่อน

Correlation Coefficient เป็นค่าที่ไม่มีหน่วย และมี Range ตั้งแต่ -1 ถึง 1 โดยที่…

- มีค่าเข้าใกล้ 0 หมายความว่า Feature Correlate กันน้อยมาก

- มีค่าเป็นบวก หมายความว่าทั้ง 2 Feature แสดงถึง Positive Correlation คือทั้ง 2 Feature มีแนวโน้มที่จะเพิ่มขึ้นพร้อมกัน

- มีค่าเป็นลบ หมายความว่าทั้ง 2 Feature แสดงถึง Negative Correlation คืออีก Feature เพิ่มขึ้น ในขณะที่อีกอันนึงลดลง

Variance Threshold

วิธีนี้ง่ายมากๆ คือการ Remove Feature ออก ถ้าหาก Variance ของ Feature นั้นๆ ไม่ Meet Threshold ที่ Set ไว้ โดย Default Feature ที่มี Variance เท่ากับ 0 (ทุกคนมีค่าเดียวกันหมด เช่น ใน Dataset ที่ทุกคนเป็นเพศหญิงหมด) จะถูก Remove ออกหมด

2. Wrapper Methods

จะเป็นการเลือก Subset Feature ด้วยการใช้ Predictive Model เข้ามาช่วย ดังนั้นส่วนใหญ่จะส่งผลให้มี Accuracy ดีกว่าการใช้ Filter Methods แต่อย่างไรก็ตามจากประสบการณ์ตรง การใช้วิธีนี้จะใช้เวลาค่อนข้างนาน ถ้าหากจำนวน Data และ Feature มีจำนวนเยอะมากๆ ก็จะยิ่งใช้เวลานานเข้าไปอีก แต่ถ้าเราพอมีเวลาไม่ได้รีบใช้ Model ก็สามารถใช้วิธีนี้ได้สบายๆ ยกตัวอย่างเช่น

Forward Feature Selection

Forward Feature Selection
  1. เริ่มต้น Train Model จาก 1 Feature + Target Variable ถ้าเรามีทั้งหมด N Feature ก็จะได้ Model เริ่มต้นทั้งหมด N Models
  2. เลือก Feature ที่ให้ Performance ดีที่สุดจาก (1)
  3. นำ Feature ที่ได้จาก (2) ซึ่งเป็น Feature ที่ให้ Performance ดีที่สุด มาจับคู่กับ Feature ที่เหลือ เราก็จะได้ Model ละ 2 Feature + Target Variable และ Train Model ใหม่ทั้งหมด
  4. เลือก Feature ที่ให้ Performance ดีที่สุดจาก (3)
  5. ทำการเพิ่ม Feature ไปเรื่อยๆ จนกว่าจะ Meet Performance ที่ตั้งไว้

Backward Feature Elimination

จะเป็นวิธีที่ตรงข้ามกับ Forward Feature Selection โดยมีวิธีการดังนี้

Backward Feature Elimination
  1. เริ่มต้น Train Model จาก Feature ทั้งหมด + Target Variable
  2. Remove Feature ออกทีละ Feature จนกว่าจะได้ Performance สูงที่สุด หรือจนกว่า Feature จะหมด

3. Embedded Methods

วิธีนี้จะเป็นการรวมข้อดีของทั้ง Filter และ Wrapper Method เข้าด้วยกัน เป็นแบบ Iterative ที่จะทำการ Extract Feature ที่ Contribute กับ Model มากที่สุดในแต่ละ Iteration โดยวิธีที่เป็นที่รู้จักกันอย่างแพร่หลายก็คือ Feature Importance

Feature Importance

Decision Tree, Random Forest และ XGBoost เป็นตัวอย่างของ Tree-based Algorithm ที่เราสามารถ Extract Feature Importance ออกมาได้ โดย Feature Importance นี้จะเป็นตัวบอกว่าแต่ละ Feature ส่งผลกับ Model มากน้อยแค่ไหน

Feature Importance

เป็นอย่างไรกันบ้างคะทุกคน เราหวังไว้เป็นอย่างยิ่งว่าบทความของเราจะพอทำให้ทุกคนเก็ตไอเดียคร่าวๆ เกี่ยวกับเทคนิค Feature Selection และสามารถนำไปต่อยอดความรู้กันต่อไปได้ สุดท้ายนี้ขอบคุณทุกคนที่อ่านจนจบบทความ แล้วพบกันใหม่ในบทความถัดๆไปนะคะ ^^

References

สำหรับใครที่ชื่นชอบบทความนี้ อย่าลืมกดติดตาม Medium: KBTG Life เรามีสาระความรู้และเรื่องราวดีๆ จากชาว KBTG พร้อมเสิร์ฟให้ที่นี่ที่แรก

--

--