回归:特征选择

用 Python 练习机器学习面试题

Lisa Stuart

Data Scientist

选择正确的特征:

  • 降低过拟合
  • 提升准确度
  • 提高可解释性
  • 缩短训练时间

特征选择步骤

1 https://www.analyticsindiamag.com/what-are-feature-selection-techniques-in-machine-learning/
用 Python 练习机器学习面试题

特征选择方法

  • 过滤法:基于统计表现对特征排序
  • 包裹法:用机器学习评估表现
  • 嵌入法:迭代训练中提取特征
  • 特征重要性:基于树的模型
用 Python 练习机器学习面试题

方法对比

方法 用 ML 模型 选最优子集 易过拟合
过滤法
包裹法 有时
嵌入法
特征重要性
用 Python 练习机器学习面试题

相关系数统计检验

特征/响应 连续型 分类型
连续型 皮尔逊相关 LDA
分类型 方差分析(ANOVA) 卡方检验
用 Python 练习机器学习面试题

过滤法

函数 返回
df.corr() 皮尔逊相关矩阵
sns.heatmap(corr_object) 热力图
abs() 绝对值
用 Python 练习机器学习面试题

包裹法

  1. 前向选择(LARS-最小角回归)
    • 从无特征开始,每次加入一个
  2. 反向消除
    • 从所有特征开始,每次去掉一个
  3. 前向/后向组合(双向消除)
  4. 递归特征消除
    • RFECV
用 Python 练习机器学习面试题

嵌入法

  1. Lasso 回归
  2. Ridge 回归
  3. ElasticNet

Lasso、Ridge 和 ElasticNet

用 Python 练习机器学习面试题

基于树的特征重要性方法

  • 随机森林 --> 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² 分数
LarsCV.alpha_ 估计的正则化参数
用 Python 练习机器学习面试题

开始练习吧!

用 Python 练习机器学习面试题

Preparing Video For Download...