1. 特征选择概述
1.1 特征选择在机器学习中的重要性
特征选择(Feature Selection)是从原始特征集中挑选出对模型预测最有贡献的子集的过程。在模型验证阶段,特征选择直接影响模型的泛化能力、可解释性和计算效率。
核心价值: 好的特征选择可以降低过拟合风险、缩短训练时间、提升模型在未见数据上的表现。
特征选择的重要性体现在以下四个维度:
| 维度 | 具体收益 | 典型场景 |
|---|---|---|
| 缓解维度灾难 | 减少特征数量,降低数据稀疏性对距离度量的影响 | 高维基因表达数据(p >> n) |
| 提升泛化能力 | 剔除噪声特征和冗余特征,降低过拟合风险 | 金融风控模型中的数百个衍生变量 |
| 增强可解释性 | 保留关键特征,使模型决策逻辑更清晰 | 医疗诊断中的少数生物标志物 |
| 降低计算开销 | 减少存储和训练时间,便于模型部署 | 实时推荐系统的在线推理 |
常见误区: 特征选择不是特征工程的全部。特征构造(如交叉特征、多项式特征)和特征变换(如归一化、降维)与特征选择互补,但不可相互替代。
1.2 特征选择与模型验证的关系
特征选择与模型验证之间存在双向耦合关系:特征选择的结果影响验证指标的可靠性,而验证策略又决定了特征选择的有效性。
在模型验证阶段进行特征选择时,必须遵循以下原则:
- 验证集隔离原则:特征选择过程只能使用训练集数据,验证集在特征选择完成前必须保持完全隔离。
- 嵌套验证(Nested CV):当特征选择本身包含超参数时(如 Lasso 的 λ),应使用内层循环做特征选择,外层循环做性能评估。
- 稳定性检查:同一特征选择方法在不同训练子集上选出的特征应具有一致性,否则说明选择结果不可靠。
1.3 特征选择的基本流程
一个完整的特征选择流程通常包含四个阶段:生成 → 评估 → 停止 → 验证。以下流程适用于大多数监督学习场景:
上述流程中的四个核心步骤说明如下:
| 步骤 | 任务 | 常用方法 / 策略 | 注意事项 |
|---|---|---|---|
| 子集生成 | 从原始特征集中产生候选特征子集 | 前向选择、后向消除、双向搜索、随机搜索 | 避免组合爆炸,优先使用启发式策略 |
| 子集评估 | 衡量候选子集对模型性能的贡献 | 信息增益、卡方检验、递归特征消除(RFE) | 评估指标应与最终模型目标一致 |
| 停止条件 | 决定何时终止搜索过程 | 达到预设特征数、性能不再提升、迭代上限 | 防止过拟合,避免在验证集上反复调优 |
| 结果验证 | 在独立测试集上确认特征子集的有效性 | 交叉验证、留出法、置换检验 | 必须使用未参与特征选择的数据 |
实践建议: 在模型验证阶段,推荐将特征选择嵌入到交叉验证的每一折中(即“包裹式”或“嵌入式”),而不是在交叉验证之前一次性完成。这样可以更真实地反映特征选择对泛化性能的影响。
1.4 特征选择的三大分类框架
根据特征选择与模型训练过程的交互方式,可将方法分为三类。理解这一分类是后续章节的基础:
| 类别 | 交互方式 | 典型算法 | 计算效率 | 与模型验证的兼容性 |
|---|---|---|---|---|
| 过滤法(Filter) | 独立于模型,仅基于数据统计特性 | 方差阈值、互信息、卡方检验 | 高 | 容易在验证前泄露信息,需谨慎 |
| 包裹法(Wrapper) | 将模型性能作为子集评估标准 | 递归特征消除(RFE)、前向选择 | 低 | 天然适合嵌套验证,但计算成本高 |
| 嵌入法(Embedded) | 在模型训练过程中自动完成特征选择 | Lasso(L1正则化)、决策树特征重要性 | 中 | 与交叉验证结合最自然,推荐优先使用 |
选择原则: 在模型验证阶段,优先考虑嵌入法(如 Lasso、树模型特征重要性),其次为包裹法(需配合嵌套交叉验证),最后才使用过滤法(需严格隔离验证集)。