Skip to content
Charles Shao
Go back

特征选择:只留好料——过滤、包装、嵌入三大流派

views

特征构建造了一堆料,降维把料熬成了高汤,但桌上还是会剩下冗余、不相关、甚至互相打架的料。特征选择就是最后一道把关:只留好料——在不造新维度的前提下,从原始特征里挑出最有代表性的子集。

Table of contents

Open Table of contents

一句话理解

好的料桌应满足两条:

  1. 高类别相关——每样料都和「这道菜好不好吃」(目标变量)强相关;
  2. 低特征间冗余——料和料之间别重复(少放两样味道一样的),避免共线性。

挑料有三种流派:看体检报告(过滤)、真炒一遍尝(包装)、边炒边挑(嵌入)——一个比一个准,也一个比一个贵。

特征选择三大流派:过滤法独立于模型、只看特征统计指标,快但忽略特征间依赖;包装法用模型对特征子集打分,准但计算量大;嵌入法把选择集成进模型训练,效率和效果折中

流派思想优点缺点
过滤 Filter独立于模型,只看特征自身统计特性通用、快,适合大规模忽略特征间依赖,可能漏掉组合价值
包装 Wrapper拿最终模型给特征子集打分能为特定模型找到最优子集计算量巨大(每个子集训一个模型)
嵌入 Embedded把选择集成进模型训练效率高于包装、考虑特征交互依赖特定模型的机制

1. 过滤法:先看料的「体检报告」

过滤法在训练前就动手,只看特征自身的分散性、相关性、信息量打分筛选,和用什么模型无关。

过滤法方法地图:从分散性(方差选择法)、关联度(皮尔逊相关、VIF 共线性)、信息度量(互信息 MI、最大信息系数 MIC)、统计检验与回归(卡方、Fisher Score、F 检验)四个角度给特征打分

1.1 分散性:方差选择法

方差太小的特征(所有样本几乎同值)不提供信息,直接砍。布尔变量方差 Var[X] = p(1−p)p 是取 1 的概率——p 接近 0 或 1 的二值特征基本没用。

1.2 关联度:皮尔逊 & VIF

1.3 信息度量:互信息 & MIC

1.4 统计检验与回归

方法场景直觉
卡方检验 χ²定性自变量 × 定性因变量比较观察频数与期望频数的差距,越大越相关
Fisher Score分类类间距离大、类内距离小的特征得分高
F 检验 / F 回归特征 × 连续目标用线性回归测单特征的解释力

过滤法的通病:只看单个特征和目标的关系,看不到特征之间的配合。两个各自平庸、但组合起来很强的特征,会被它双双误杀。


2. 包装法:真炒一遍尝味道

包装法把最终模型当尺子:拿一个特征子集去训模型,用验证集表现打分,好就留、差就换。准,但每换一个子集就得重训一次,

方法做法
前向选择从空集开始,每次加入能让模型提升最大的特征,直到不再提升
后向剔除从全集开始,每次剔除影响最小的特征,直到性能开始下降
递归特征消除 RFE反复训模型 → 按权重排序 → 剔除最不重要的 → 重复,直到剩下指定数量

RFE 的稳定性取决于底层模型:用 Ridge 比用普通线性回归更稳(正则化让权重不那么抖)。


3. 嵌入法:边炒边挑

嵌入法把选择融进训练过程——模型一边学,一边通过自身机制(正则项、特征重要性)决定谁去谁留。效率高于包装,又比过滤多考虑了特征交互。

3.1 正则化:L1 会「杀特征」,L2 不会

Loss = Loss_原始 + λ · P(w)

L1 vs L2 正则化的稀疏性:L1(Lasso) 惩罚项是系数绝对值之和,会把不重要特征的系数直接压到 0,天然做特征选择;L2(Ridge) 惩罚平方和,让关联特征系数趋于相等、不置零,只收缩不剔除

正则惩罚项 P(w)选择效果稳定性
L1 (Lasso)wᵢ`
L2 (Ridge)Σwᵢ²让关联特征系数趋于相等、不置 0相对稳定,利于理解

一句话记:L1 做减法(杀特征),L2 做收缩(都留但压小)。想要稀疏、自动选特征就上 L1。

3.2 树模型的特征重要性

树模型(随机森林、GBDT、XGBoost)天生能给特征打重要性分:

3.3 其他:最大熵 & 深度学习


4. 终点:自动化特征学习

传统特征工程的痛,三个字概括:慢、贵、难迁移

于是方向很自然:让机器自己学特征(Feature Learning)。核心思想是从原始数据里自动发现、抽取更抽象、更有区分度的表示,让特征工程更快、有效、可推广——尤其是对图像、文本、序列这类高维非结构化数据。这也是深度学习端到端之所以强大的原因:它把「构建 + 选择 + 提取」揉进了模型本身。

但别误会——自动化不等于「不用管特征了」。工业界现实是手工业务特征 + 自动表示学习混用:懂业务的人切的那几刀(衍生变量),机器目前仍然想不到。


TL;DR — 三句话

  1. 两条原则:高类别相关(和目标强相关)+ 低特征间冗余(别重复、VIF>10 要剔)。
  2. 三大流派:过滤(看体检报告,快但不管搭配)、包装(真炒一遍尝,准但贵)、嵌入(边炒边挑,折中)。
  3. L1 杀特征、L2 做收缩;树模型自带重要性;终局是「手工业务特征 + 自动表示学习」混用,机器还替代不了懂业务的那几刀。

下一篇是系列收官——特征编码:把「文字菜谱」翻译成「秤上的克数」,One-Hot / Label / Count / Frequency / Target 五种编码各自的适用场景与坑(尤其 Target Encoding 的数据泄漏)。


views
Share this post on:

Previous Post
特征编码:把文字菜谱翻译成秤上的克数
Next Post
特征提取与降维:吊高汤——把一大堆料浓缩成精华