迴歸:特徵選擇

用 Python 練習機器學習面試題

Lisa Stuart

Data Scientist

選對特徵:

  • 降低過度擬合
  • 提升準確率
  • 提高可解釋性
  • 縮短訓練時間

特徵選擇步驟

1 https://www.analyticsindiamag.com/what-are-feature-selection-techniques-in-machine-learning/
用 Python 練習機器學習面試題

特徵選擇方法

  • Filter:依統計表現為特徵排序
  • Wrapper:用 ML 方法評估表現
  • Embedded:反覆訓練模型以擷取特徵
  • 特徵重要性:樹為基礎的 ML 模型
用 Python 練習機器學習面試題

方法比較

方法 使用 ML 模型 選最佳子集 可能過度擬合
Filter No No No
Wrapper Yes Yes Sometimes
Embedded Yes Yes Yes
特徵重要性 Yes Yes Yes
用 Python 練習機器學習面試題

相關係數統計檢定

特徵/應變數 連續型 類別型
連續型 Pearson 相關 LDA
類別型 ANOVA 卡方檢定
用 Python 練習機器學習面試題

Filter 函式

函式 傳回
df.corr() Pearson 相關矩陣
sns.heatmap(corr_object) 熱度圖
abs() 絕對值
用 Python 練習機器學習面試題

Wrapper 方法

  1. 前向選取(LARS-最小角度迴歸)
    • 由無特徵開始,每次加入一個
  2. 後向淘汰
    • 由全部特徵開始,每次刪除一個
  3. 前向選取/後向淘汰組合(雙向淘汰)
  4. 遞迴式特徵消除
    • RFECV
用 Python 練習機器學習面試題

Embedded 方法

  1. Lasso 迴歸
  2. Ridge 迴歸
  3. ElasticNet

Lasso、Ridge 與 ElasticNet

用 Python 練習機器學習面試題

樹為基礎的特徵重要性方法

  • Random Forest → sklearn.ensemble.RandomForestRegressor
  • Extra Trees → sklearn.ensemble.ExtraTreesRegressor
  • 模型擬合後 → tree_mod.feature_importances_
用 Python 練習機器學習面試題
函式 傳回
sklearn.svm.SVR 支援向量迴歸估計器
sklearn.feature_selection.RFECV 交叉驗證的遞迴式特徵消除
rfe_mod.support_ 已選特徵的布林陣列
ref_mod.ranking_ 特徵排名,選取=1
sklearn.linear_model.LinearRegression 線性模型估計器
sklearn.linear_model.LarsCV 交叉驗證的最小角度迴歸
LarsCV.score 決定係數 r-squared 分數
LarsCV.alpha_ 預估正規化參數
用 Python 練習機器學習面試題

一起來練習吧!

用 Python 練習機器學習面試題

Preparing Video For Download...