← 返回题目列表

特征选择有哪些方法?Filter、Wrapper、Embedded 怎么区分?

高频 中等 第 11 / 25 题 更新于 2026/09/25
特征工程特征选择过滤法嵌入法
学习 AI 实战项目

简化版

特征选择是在给定模型、指标和成本约束下保留一组特征,常用于降维、控成本和改善稳定性,但不保证自动提升泛化。Filter 用方差、相关、卡方、互信息等统计规则筛选,通常快但常见单变量方法忽略交互;Wrapper 反复训练模型并用验证分数搜索子集,如前向、后向和 RFE,计算贵且选择过程易过拟合;Embedded 在训练中产生稀疏系数或选择规则,如 L1 模型。树重要性只有配合阈值/选择流程才完成选择。所有监督式选择都必须在训练折内拟合。

详细版

三类方法对比:

类别代表方法是否用模型速度是否考虑特征组合过拟合风险
Filter 过滤方差、相关系数、卡方、互信息、IV通常不反复拟合预测模型快常见单变量方法不考虑仍会因多重尝试而过拟合
Wrapper 包裹RFE、前向/后向选择、遍历搜索是(反复训练)慢是高
Embedded 嵌入L1(Lasso)、树的特征重要性、正则是(训练即选择)中部分中

为什么要做特征选择:

  • 对抗维度灾难 / 过拟合:无关特征多会让模型学到噪声。
  • 提速降本:特征少,训练和推理都快、存储省。
  • 增强可解释性:留下真正重要的特征,模型更好理解。
  • 去冗余去噪:删掉重复、无关、纯噪声的特征。

要点: 常见 Filter 快但与最终模型目标未必一致;Wrapper 更贴合指定模型却昂贵;Embedded 把选择偏好写进训练。哪类“最准”或“最实用”取决于数据、模型、预算与验证设计。

完整版教学

一、为什么要专门做特征选择——不是特征越多越好

新手常以为「特征越多信息越多、模型越准」,其实相反:

  • 维度灾难 + 过拟合:无关或噪声特征越多,模型越容易把噪声当规律,泛化变差,尤其样本不够多时。
  • 训练/推理变慢、成本变高:每多一维都要计算和存储。
  • 可解释性变差:几千个特征没人说得清模型在看什么。
  • 共线性 / 冗余:重复表达同一信息的特征互相干扰。

特征选择就是从原始特征集里挑一个更小的子集,并用未见数据确认效果、稳定性和成本取舍。它与特征提取不同:选择保留原始列;PCA 等特征提取会组合出新坐标。组合特征通常较难直接对应单一业务字段,但仍可借助载荷解释,不能绝对说“不可解释”。

二、Filter 过滤法:先用统计指标筛一遍

思路:不通过反复训练目标预测器搜索子集,而用预先定义的统计规则打分或剔除。监督 Filter 仍会使用 y,也有考虑冗余的多变量过滤法;以下是最常见的单变量例子:

  • 方差过滤:方差接近 0 的特征(几乎所有样本取值一样)没区分度,直接删。
  • 相关系数(Pearson):衡量特征与目标的线性相关,适合连续特征、连续目标。
  • 卡方检验(Chi-square):衡量类别特征与类别目标的相关性。
  • 互信息(Mutual Information):理论上能描述一般统计依赖,但有限样本估计对离散化、近邻参数和样本量敏感。
  • IV / WOE:风控里衡量特征对二分类目标的区分能力。

优点:通常快、与具体预测器弱耦合,适合粗筛。 缺点:

  1. 只看单特征与目标的关系,忽略特征间的组合效应——两个单独看都弱、组合起来很强的特征会被误删;两个都强但高度冗余的特征会被同时保留。
  2. 打分标准和最终模型无关,Filter 认为好的特征,模型未必用得好。

所以 Filter 常作为第一道粗筛(先砍掉明显没用的),再交给后面更精的方法。

三、Wrapper 包裹法:让模型来评判特征子集

思路:把模型当成评估器,用交叉验证分数评价候选子集,再按某种搜索策略推进。穷举才可能在有限候选中找到全局最优;前向、后向和 RFE 都是启发式或贪心过程。

  • 前向选择:从空集开始,每轮加入「使效果提升最大」的一个特征,直到不再提升。
  • 后向消除:从全集开始,每轮删掉「删了效果损失最小」的特征。
  • RFE(递归特征消除):反复训练模型、按重要性删掉最差的特征、再训练,逐步逼近目标特征数。

优点:直接以指定模型的验证指标为目标,能在搜索到的候选之间反映部分组合影响。 缺点:

  1. 极慢:要反复训练模型很多次,特征多时组合爆炸。
  2. 易过拟合:反复用同一批数据挑特征,可能过拟合到验证集,要用嵌套交叉验证防。
  3. 和特定模型绑定:为模型 A 选的特征换到模型 B 未必好。

四、Embedded 嵌入法:训练模型时顺便完成选择

思路:把特征选择嵌进模型训练过程,训练完成的同时就得到了特征重要性/取舍。两大代表:

  • L1 正则(Lasso):在损失里加 λΣ|wᵢ|,会把不重要特征的系数直接压成 0,非零系数对应的就是被选中的特征。这是「训练即选择」的经典例子(原理见 L1/L2 正则专题)。
  • 树模型选择:随机森林、GBDT、XGBoost 可给出 gain、split 等模型内重要性;再配合阈值、稳定性复核或逐步消融才能形成选择流程。重要性定义不同,且相关特征会分摊或替代贡献。

优点:通常比反复搜索子集便宜,并与具体模型目标一致。 缺点:和模型及正则强度绑定;基于不纯度的树重要性可能偏爱候选切分较多的特征,L1 在高度相关特征间的选择可能不稳定,不应描述成固定或真正随机地只留一个。

五、三类方法怎么配合用——实战流程

它们不是互斥的,实战常串起来用:

① Filter 粗筛:先删掉零方差、与目标几乎无关、明显冗余的特征(快、省后续算力)
        ↓
② Embedded 精选:用 Lasso / 树重要性 在剩余特征上做主力筛选
        ↓
③ Wrapper 微调(可选):特征已不多时,用 RFE 等在小范围里搜最优子集
        ↓
④ 结合业务:保留业务上确知重要、可解释的特征,剔除会造成泄露的特征

六、几个高频追问

  • 特征选择 vs 降维(PCA)区别? 选择是保留原始特征子集(可解释、可回溯业务含义);PCA 是线性组合出新特征(不可解释,但能压缩相关信息)。要可解释选前者,纯压缩可用后者。
  • 相关系数高的两个特征删哪个? 不能只凭两两相关就删除。要结合模型对共线性的敏感度、稳定性、采集成本、缺失率和增量消融;正则化线性模型或树模型的处理也不同。
  • 特征选择要不要放进交叉验证? 必须放进 Pipeline,在每一折的训练部分内部做选择,否则「用全量数据选特征」会造成数据泄露、评估虚高。
  • Filter 会不会误删有用特征? 会——它看不到特征组合,所以别只靠 Filter,配合 Embedded 更稳。

七、用数字和工程流程校验理解

从 1000 个候选特征中先用 Filter 降到 100 个,再用 L1 或树模型 Embedded 方法缩到 30 个,最后对少量候选做 Wrapper 搜索,比直接枚举 2^1000 个子集现实得多。选择过程必须嵌入交叉验证,否则会高估效果。

对象/方案核心机制选择或风险
Filter统计量独立于或弱依赖模型快,但可能漏掉交互
Wrapper反复训练评估特征子集针对模型但计算昂贵
Embedded训练过程中完成选择效率与模型偏好折中

把面试题落到可执行流程:

remove leakage/constant/duplicate
 -> filter coarse screening
 -> embedded selection
 -> nested CV evaluate final pipeline

先用全量数据选特征再交叉验证会把验证折信息泄露进选择结果;特征选择本身也必须在每个训练折内完成。

八、常见误区与追问

  • 误区:相关系数低的特征一定无用。 它可能通过非线性关系或与其他特征交互产生预测价值。
  • 误区:树的 feature importance 高就代表因果重要。 重要性只描述模型预测贡献,还可能受高基数和相关特征偏置影响。
  • 追问:RFE 属于哪类方法? 它反复训练模型并递归删除特征,属于 Wrapper。
  • 追问:L1 为什么属于 Embedded? 选择效果在模型目标优化过程中由稀疏系数直接产生。
  • 追问:强相关特征怎么处理? 可按稳定性、成本和业务含义保留代表项,并检查选择在不同折中的一致性。

九、加强记忆

记忆主线是“选择过程也属于模型训练”。Filter 用统计规则快速粗筛,常见单变量版本看不到交互;Wrapper 用验证分数搜索子集,更贴指定模型但贵且可能把验证噪声当收益;Embedded 把稀疏或选择偏好写进训练目标,仍需阈值、稳定性与折外验证。没有一类天然最准,监督选择必须在每个训练折内重做,最终测试集只使用一次。特征选择保留原列,PCA 等特征提取产生组合坐标;可解释性通常下降但并非绝对为零。