返回
Featured image of post 浅谈特征选择

浅谈特征选择

特征选择的目的

  1. 减少冗余特征:删除不提供有用信息的特征,提升模型的简洁性和性能。
  2. 减少噪音特征:降低模型对随机波动或误差的敏感性,避免过拟合。
  3. 减少相关特征:降低特征之间的多重共线性,减轻模型训练的难度和复杂度。

特征选择的实战经验

  • 简单高效:在实际应用中,特征选择应以简洁高效为主,不必花费过多时间。
  • 树模型(如XGBoost、LightGBM):可以直接保留全部特征,通过调参和模型内置的特征重要性进行筛选。
  • 深度模型或大数据场景:如果特征过多导致性能问题,可以先进行特征过滤。

特征选择的方法

基于统计的方式

  1. 皮尔逊相关系数
    • 衡量两个连续变量之间的线性相关程度,取值范围为-1到1。
    • 1表示完全正相关,-1表示完全负相关,0表示无线性关系。
  2. 卡方检验
    • 用于评估特征与目标变量之间的独立性。
    • 如果完全独立,说明该特征对目标变量无帮助。
    1
    2
    
    from sklearn.feature_selection import chi2, SelectPercentile
    feature_select = SelectPercentile(chi2, percentile=95)
    
  3. 聚合统计
    • 基于标签对特征进行聚合,计算均值、中位数、方差等统计量。
    • 如果不同标签组的特征统计量差异较大,说明特征有效。
  4. 斯皮尔曼相关系数、肯德尔相关系数、互信息
    • 用于衡量非线性关系,适合复杂场景。
  5. SHAP值分析
    • 使用SHAP库分析每个特征对模型预测的贡献。
    • 简单来说,将某个特征替换为均值后,观察模型预测值的变化。

基于模型的方式

  1. 决策树模型
    • 方法1:将全量特征输入模型,根据特征重要性筛选,删除重要性低的特征。
    • 方法2:逐步删除特征并训练模型,如果删除大量特征后模型性能变化不大,则保留删除操作。
  2. 深度模型
    • 全连接层的权重绝对值越大,说明对应特征越重要,可以据此筛选特征。

补充说明

  • 递归特征消除(RFE):基于模型系数或特征重要性,递归地删除不重要的特征。
  • L1正则化:通过L1正则化使部分特征系数归零,实现特征选择。
  • 过滤式方法:基于统计指标(如相关性)直接筛选特征,不涉及模型训练。
  • 包裹式方法:将特征选择视为搜索问题,通过交叉验证选择最优特征子集,计算成本较高。
  • 嵌入式方法:如LASSO回归、决策树等,在模型训练过程中自动进行特征选择。
© 2023 - 2025 壹壹贰捌· 0Days
共书写了265.7k字·共 93篇文章 京ICP备2023035941号-1