การถดถอย: การเลือกฟีเจอร์

ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

Lisa Stuart

Data Scientist

การเลือกฟีเจอร์ที่เหมาะสม:

  • ลด overfitting
  • เพิ่มความแม่นยำ
  • เพิ่มความสามารถในการตีความ
  • ลดเวลาในการฝึกโมเดล

ขั้นตอนการเลือกฟีเจอร์

1 https://www.analyticsindiamag.com/what-are-feature-selection-techniques-in-machine-learning/
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

วิธีการเลือกฟีเจอร์

  • Filter: จัดอันดับฟีเจอร์ตามประสิทธิภาพทางสถิติ
  • Wrapper: ใช้วิธี ML ประเมินประสิทธิภาพ
  • Embedded: ฝึกโมเดลแบบวนซ้ำเพื่อดึงฟีเจอร์
  • Feature importance: โมเดล ML แบบ tree-based
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

เปรียบเทียบแต่ละวิธี

วิธีการ ใช้โมเดล ML เลือกชุดที่ดีที่สุด อาจเกิด overfit
Filter ไม่ ไม่ ไม่
Wrapper ใช่ ใช่ บางครั้ง
Embedded ใช่ ใช่ ใช่
Feature importance ใช่ ใช่ ใช่
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

การทดสอบทางสถิติด้วยสัมประสิทธิ์สหสัมพันธ์

ฟีเจอร์/ตัวแปรตอบสนอง ต่อเนื่อง จัดหมวดหมู่
ต่อเนื่อง Pearson's Correlation LDA
จัดหมวดหมู่ ANOVA Chi-Square
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

ฟังก์ชันสำหรับ Filter

ฟังก์ชัน ค่าที่คืนกลับ
df.corr() เมทริกซ์สหสัมพันธ์ Pearson
sns.heatmap(corr_object) กราฟ heatmap
abs() ค่าสัมบูรณ์
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

วิธี Wrapper

  1. Forward selection (LARS-least angle regression)
    • เริ่มโดยไม่มีฟีเจอร์ แล้วเพิ่มทีละตัว
  2. Backward elimination
    • เริ่มด้วยฟีเจอร์ทั้งหมด แล้วตัดออกทีละตัว
  3. การรวม forward selection และ backward elimination (bidirectional elimination)
  4. Recursive feature elimination
    • RFECV
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

วิธี Embedded

  1. Lasso Regression
  2. Ridge Regression
  3. ElasticNet

Lasso, Ridge, และ ElasticNet

ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

วิธี feature importance แบบ tree-based

  • Random Forest --> sklearn.ensemble.RandomForestRegressor
  • Extra Trees --> sklearn.ensemble.ExtraTreesRegressor
  • หลังจาก fit โมเดล --> tree_mod.feature_importances_
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python
ฟังก์ชัน ค่าที่คืนกลับ
sklearn.svm.SVR estimator สำหรับ support vector regression
sklearn.feature_selection.RFECV recursive feature elimination พร้อม cross-val
rfe_mod.support_ อาร์เรย์บูลีนของฟีเจอร์ที่เลือก
ref_mod.ranking_ อันดับฟีเจอร์ โดยที่เลือก=1
sklearn.linear_model.LinearRegression estimator สำหรับโมเดลเชิงเส้น
sklearn.linear_model.LarsCV least angle regression พร้อม cross-val
LarsCV.score คะแนน r-squared
LarsCV.alpha_ พารามิเตอร์ regularization ที่ประมาณได้
ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

มาฝึกกันเถอะ!

ฝึกตอบคำถามสัมภาษณ์ Machine Learning ด้วย Python

Preparing Video For Download...