数据洗干净了(上一篇),接下来是切配——把原始料组合、换个角度、片下不同部位,做出更有预测力的新特征。这就是特征构建:捕捉数据里藏着的非线性关系和隐藏模式。
三条路:特征组合(把料一起炒)、映射到新空间(换个角度看料)、衍生变量(从整料上片下部位)。
Table of contents
Open Table of contents
一句话理解
单个原始特征常常是「生料」,直接下锅平淡无味。特征构建就是切配的刀工:
- 把「点击数」和「浏览数」相除 → 点击率,比两个原始计数都更有味;
- 把用户名字
Ms. Lady Duff片出称谓Lady.→ 社会地位,直接关联获救率。模型自己很难想到这些组合,这是备料师结合业务经验切出来的。
1. 特征组合:把几种料一起炒
1.1 GBDT + LR:让树帮你造交叉特征
这是广告 / 推荐里的经典套路(Facebook 2014 那篇论文带火的):用 GBDT 的叶子节点当新的类别特征。
思路四步:
- 用原始特征训一个 GBDT;
- 每棵树的每个叶子节点,看作一个新的类别;
- 一个样本落在每棵树的哪个叶子上,就用 One-Hot 标出这条「路径」;
- 把所有树的 One-Hot 拼接成高维稀疏向量,喂给 LR / FM。
例:左树 3 个叶子、右树 2 个叶子。样本落在左树第 1 叶 → [1,0,0],右树第 2 叶 → [0,1],拼起来新特征 = [1,0,0,0,1]。
为什么有用?GBDT 的每条「根 → 叶」路径,本质是一串特征的与组合(
年龄>30 且 城市=北京 且 …)。这等于让树自动帮你挖交叉特征,省去人工拍脑袋。
1.2 特征搜索:从一堆料里找最优子集
组合会爆炸,所以需要搜索策略找最优特征子集:
| 类别 | 算法 | 说明 | 缺点 |
|---|---|---|---|
| 完全搜索 | BFS / 分支限界 | 遍历所有组合(可剪枝) | 穷举,NP 难 |
| 启发式 | 序列前向 SFS / 后向 SBS | 每次贪婪加/减一个特征 | 易陷局部最优 |
| 随机搜索 | 模拟退火 / 遗传算法 | 以概率接受较差解 / 交叉变异 | 依赖随机,难复现 |
这块和特征选择高度重叠——组合是「造」、选择是「留」,用的搜索算法是同一套。
1.3 交叉特征:用户 × 物品的非线性组合
CTR 预估里,交叉特征表达「用户对某类物品的偏好」。做法是把用户特征和物品特征做内积:
① 用户阶层 One-Hot(中产) f_user = [0, 1, 0]
② 各阶层买某物品(Camry)的比例 f_item = [0.2, 0.6, 0.2]
③ 交叉(倾向性)= f_user · f_item = 0×0.2 + 1×0.6 + 0×0.2 = 0.6
一个「中产用户 × Camry」的组合,直接得到倾向性 0.6——比「中产」或「Camry」单独存在都更有信息。FM / DeepFM 就是把这种两两交叉自动化、参数化了。
2. 映射到新空间:换个角度看料
有些料(时间序列、信号)在原始的时域里看不出门道,得换个坐标系才现原形。
| 变换 | 干啥 | 关键点 |
|---|---|---|
| 快速傅里叶变换 (FFT) | 时域 → 频域 | 揪出周期性、主频率;Xₖ = Σₙ xₙ·e^(−i2πkn/N) |
| 小波变换 | 时-频联合表示 | 比 FFT 多了时间定位,适合非平稳信号 |
| 数据熵 | 量化序列复杂度 | 近似熵 ApEn / 样本熵 SampEn,值越小越规律可预测 |
直觉:FFT 告诉你「这段信号里有哪些频率」,但不告诉你「频率什么时候出现」;小波两个都告诉你。心电、振动、金融这类非平稳信号,小波更好使。
3. 衍生变量:从一块整料上片下不同部位
衍生变量最吃业务洞察——从一个信息量丰富的原生变量里,拆 / 提出独立特征。经典案例是泰坦尼克号:
| 原生变量 | 衍生思路 | 衍生变量 | 业务意义 |
|---|---|---|---|
| Name | 提取称谓 | Title(Mr./Master./Lady.) | 社会地位、年龄、婚姻状况 → 影响获救率 |
| Cabin | 提取甲板/房间号 | Deck、Room | 船上位置与社会地位 |
| Ticket | 提取前缀与位数 | TicketPrefix、Digits | 购票方式、同行关系 |
还有两类常见衍生:商业加工(从登录记录 → 「最近 30 天登录次数」)和数学运算(距离 ÷ 时间 → 速度;Xᵢ × Xⱼ、ln X、√X)。
小心:批量造特征会招来多重共线性
数学运算批量生成特征,容易造出一堆高度相关的特征(多重共线性):
- 线性模型对此敏感——系数方差大、可解释性差;
- 树模型影响小,但仍建议用相关系数(如斯皮尔曼)识别并剔除强相关特征。
记住:造特征不是越多越好。造完要回头做特征选择,把冗余和噪音剔掉——切得多,也要挑得狠。
TL;DR — 三句话
- 特征组合:GBDT 叶子当新类别喂 LR(自动挖交叉)、特征搜索找最优子集、CTR 用内积做用户 × 物品交叉。
- 映射新空间:FFT(频域)、小波(时-频,适合非平稳)、数据熵(量化复杂度)——时域看不出的模式,换坐标系就现形。
- 衍生变量最吃业务经验(泰坦尼克 Name/Cabin/Ticket),但批量造特征会招多重共线性,造完记得挑。
下一篇讲「吊高汤」——特征提取与降维:稀疏表示、特征哈希、以及 PCA / ICA / LDA 三种降维法到底在最大化什么。