特征选择方法对比表
基于 ML Lecture 4 Part I 内容整理
一、三大类方法总体对比
| 方面 | 过滤法 (Filter Method) | 包裹法 (Wrapper Method) | 嵌入法 (Embedded Method) |
|---|---|---|---|
| 主要思想 | 在训练任何模型之前,利用统计评分(如相关系数或方差)快速挑选出最优特征 | 通过反复训练/测试模型来评估特征子集 | 在模型训练过程中同时完成特征选择 |
| 计算成本 | 低(基于统计特性) | 高(需要重复训练模型) | 中等(只需训练一次) |
| 速度 | 快 | 慢 | 中等 |
| 准确性 | 中等 | 高(基于模型性能) | 高(在训练中学习) |
| 模型依赖 | 模型无关 | 模型无关(但需要训练模型评估) | 依赖具体算法 |
| 适用场景 | 高维数据初步筛选、快速筛选 | 中小规模数据集、需要高准确性 | 训练过程中自动选择 |
二、过滤法 (Filter Method) 详细对比
2.1 过滤法总体特点
| 方面 | 特点 |
|---|---|
| 原理 | 利用统计方法检查特征 |
| 优点 | 1. 模型无关:不依赖任何机器学习算法 2. 计算效率高:基于数据本身的统计特性进行过滤,适合高维数据的初步过滤(如基因数据和文本特征) |
| 缺点 | 1. 忽略特征交互:单变量统计无法充分考虑变量间的相互作用 2. 捕捉非线性关系能力有限:简单的统计量无法过滤非线性特征,需要更复杂的方法 |
2.2 具体过滤方法对比
| 方法 | 适用范围 | 优点 | 缺点 | 注意事项 |
|---|---|---|---|---|
| 方差阈值法 (Variance Threshold) | - 移除常量或近似常量特征 - 数值特征 | - 简单快速 - 计算成本低 | - 高方差 ≠ 一定有用 - 低方差特征有时仍可能与标签强相关 | - 对特征尺度敏感,不能无视量纲直接比较方差;标准化后非恒定特征方差会接近 1,可能削弱筛选作用 - 对 one-hot 特征不能只看方差大小,还要结合业务和标签信息 |
| 卡方检验 (Chi-squared Test) | - 分类特征与分类目标 - 离散特征 | - 能检测特征与目标的独立性 - 提供统计显著性 | - 仅适用于分类问题 - 连续变量需要先分箱 | - 连续变量需要先分箱(每个箱的期望频率应不小于5) - 可以排序保留前K个特征,或设定显著性水平 |
| F检验 (F-test) | - 数值特征与分类目标 - 连续特征 | - 能分析组间方差和组内方差的差异 - 适用于数值特征 | - 仅适用于分类问题 - 假设数据服从正态分布 | - 用于评估数值特征对不同类别均值的区分能力 - F值越大,相关性越强 |
| 互信息法 (Mutual Information) | - 数值或分类特征 - 线性和非线性关系 | - 能捕捉线性和非线性关系 - 基于信息论,理论基础扎实 | - 计算相对复杂 - 需要估计概率分布 | - 表示在已知特征X之后,关于目标Y的不确定性被减少的程度 - 适用于各种特征类型 |
三、包裹法 (Wrapper Method) 详细对比
3.1 包裹法总体特点
| 方面 | 特点 |
|---|---|
| 原理 | 通过反复训练/测试模型来评估特征子集 |
| 优点 | 1. 模型性能导向:基于模型性能选择,结果高度可靠 2. 模型无关 (Model-agnostic):适用于任何模型 |
| 缺点 | 1. 计算成本高:需要重复训练模型,不适合大规模数据集 2. 潜在过拟合:选择过程完全依赖数据特征,可能导致对训练数据过拟合 |
3.2 具体包裹方法对比
| 方法 | 适用范围 | 优点 | 缺点 | 步骤特点 |
|---|---|---|---|---|
| 前向选择 (Forward Selection) | - 特征数量较多 - 需要逐步添加特征 | - 计算量相对其他包裹法较少(尽管仍需重复训练) - 从空集开始,逐步添加 | - 类似贪心算法,忽略特征间的相关性 - 选出的集合可能不是最优的 | 1. 从空集开始 2. 每次添加一个使性能提升最大的特征 3. 直到满足终止条件 |
| 后向消除 (Backward Elimination) | - 高维数据 - 特征数量很多 | - 更好地平衡了效率和效果 - 适合高维数据 | - 依赖模型能力 - 如果模型不能完全学习特征,可能会错误消除某些特征 | 1. 从全特征集开始 2. 每次移除一个使性能损失最小的特征 3. 直到满足终止条件 |
| 递归特征消除 (RFE) | - 需要逐步剔除特征 - 基模型能提供特征重要性 | - 比穷举搜索更高效 - 若基模型能表达特征交互,则可在一定程度上利用特征相关性 - 可选择与最终模型不同的基模型 | - 仍需重复训练,特征很多时成本较高 - 依赖模型可解释性(基模型必须能给出重要性) - 需要选择合适的基模型 | 1. 训练基模型获得特征重要性 2. 按重要性排序 3. 剔除排名最后的r个特征 4. 重复直到满足条件 |
四、嵌入法 (Embedded Method) 详细对比
4.1 嵌入法总体特点
| 方面 | 特点 |
|---|---|
| 原理 | 在模型训练过程中进行特征选择 |
| 优点 | 1. 高效率:只需训练一次 2. 更好的适应性:特征选择依赖于具体算法 |
| 缺点 | 1. 缺乏可解释性:复杂模型的重要性难以解释 2. 难以检测错误:错误只能反映在模型性能上 |
4.2 具体嵌入方法对比
| 方法 | 适用范围 | 优点 | 缺点 | 特点 |
|---|---|---|---|---|
| L1正则化 (L1 Regularization / Lasso) | - 线性模型 - 高维数据 - 需要自动特征选择 | 1. 自动特征选择:系数为0的特征自动被移除 2. 计算效率高(适合高维) 3. 提供系数可解释性:系数值直接表示特征重要性 | 1. 对于高度相关的特征可能只随机选一个 2. 需要特征缩放:应只在训练集上拟合缩放器,再变换验证/测试集 3. 仅适用于线性模型或线性参数化部分 | - 通过L1约束使部分系数变为0 - 需要调整超参数 - 系数 |
| 决策树特征重要性 (Decision Tree Feature Importance) | - 分类和回归任务 - 需要捕捉非线性关系 | 1. 自动捕捉非线性关系 2. 计算效率高 | 1. 对特征与标签相关性较为敏感 2. 倾向于选择基数较高的特征(高基数特征) | - 基于加权后的基尼不纯度降低量计算重要性 - 重要性 = - 可以设定阈值或选择top-k特征 |
五、方法选择指南
5.1 根据数据规模选择
| 数据规模 | 推荐方法 | 理由 |
|---|---|---|
| 大规模高维数据 | 过滤法(方差阈值、互信息) | 计算效率高,适合初步筛选 |
| 中小规模数据 | 包裹法(RFE、前向/后向) | 可以基于模型性能精确选择 |
| 训练过程中 | 嵌入法(L1、决策树) | 只需训练一次,效率高 |
5.2 根据特征类型选择
| 特征类型 | 推荐方法 | 理由 |
|---|---|---|
| 分类特征 + 分类目标 | 卡方检验 | 专门用于检测分类特征与分类目标的独立性 |
| 数值特征 + 分类目标 | F检验 | 分析组间方差和组内方差的差异 |
| 数值/分类特征 + 非线性关系 | 互信息法 | 能捕捉线性和非线性关系 |
| 线性模型 + 高维数据 | L1正则化 | 自动特征选择,适合线性模型 |
| 非线性关系 | 决策树特征重要性 | 能自动捕捉非线性关系 |
5.3 根据需求选择
| 需求 | 推荐方法 | 理由 |
|---|---|---|
| 快速初步筛选 | 过滤法 | 速度快,计算成本低 |
| 高准确性 | 包裹法或嵌入法 | 基于模型性能,结果更可靠 |
| 可解释性 | 过滤法(统计检验)或L1正则化 | 提供统计显著性或系数可解释性 |
| 捕捉特征交互 | 包裹法(RFE)或嵌入法(决策树) | 能考虑特征间的相关性 |
| 高维数据 | 过滤法(方差阈值)或L1正则化 | 计算效率高,适合高维 |
六、常见陷阱与注意事项
| 陷阱 | 说明 | 如何避免 |
|---|---|---|
| 数据泄露 (Data Leakage) | 在特征选择过程中误用了测试集或未来数据,导致评估结果虚高 | 严格分离训练集和测试集,特征选择只在训练集上进行 |
| 多重共线性 (Multicollinearity) | 高度相关的特征会扭曲线性模型的权重并降低可解释性 | 删除其中一个相关特征,或使用降维方法 |
| 目标泄露 (Target Leakage) | 特征包含关于目标变量的间接信息 | 仔细检查特征,避免使用与目标直接相关的特征 |
| 忽略特征交互 | 单独移除看似无关的特征,导致丢失组合特征的价值 | 使用能捕捉特征交互的方法(如包裹法、决策树) |
| 方差阈值法的误用 | 无视特征量纲直接比较方差,或机械删除低方差特征 | 明确方差阈值的尺度含义;对 one-hot 或同量纲特征可直接使用,并结合业务和标签信息综合判断 |
七、总结对比表
| 方法类别 | 代表方法 | 计算成本 | 准确性 | 可解释性 | 适用场景 |
|---|---|---|---|---|---|
| 过滤法 | 方差阈值、卡方检验、F检验、互信息 | 低 | 中等 | 高(统计显著性) | 高维数据初步筛选 |
| 包裹法 | 前向选择、后向消除、RFE | 高 | 高 | 中等 | 中小规模数据,需要高准确性 |
| 嵌入法 | L1正则化、决策树特征重要性 | 中等 | 高 | 中等(L1)到低(复杂模型) | 训练过程中自动选择 |
