这是「数据与特征工程系列」的开篇。这个系列会把「把毛坯数据变成模型能吃的料」这件事——预处理 → 构建 → 提取降维 → 选择 → 编码——从直觉到公式逐段讲透。本篇先用一个统一比喻建立整体心智模型:特征工程到底在干什么、为什么它比换模型更重要、在工程上又分成哪几步。后续每一篇再逐一深挖:系统化框架、数据预处理、特征构建、特征提取与降维、特征选择、特征编码、Criteo CTR 实战。
Table of contents
Open Table of contents
一句话理解
特征工程 = 大厨背后的「备料师」。同一批食材(原始数据),备料师洗净、切配、吊出高汤、只留有用的料,再把「文字菜谱」翻译成「秤上的克数」,交给大厨(算法)下锅。
大厨手艺再好,也炒不出烂菜叶的满汉全席——菜的上限,在备料那一刻就定了。
换个更贵的大厨(换模型)通常只提升几个点;把料备好,往往能让同一个大厨直接换个档次。
1. 那句被引用烂了的话,到底什么意思
数据和特征决定了机器学习的上限,而算法和模型只是逼近这个上限而已。
横线是「这批数据 + 这套特征」能达到的效果上限。换算法(LR → GBDT → DNN)是在天花板底下往上够,边际收益递减;而重做特征,是把整条天花板往上抬。
这不是鸡汤,是工程排序:当你的模型卡在某个指标不动时,先怀疑特征,再怀疑模型。绝大多数「换了 XGBoost / 上了 Transformer 却没啥提升」的故事,根子都在特征没喂好。
2. 特征工程在干哪四件事
特征工程的核心目标只有一句:==最大限度地从原始数据里提取、转换、构建出有预测能力的特征,喂给模型。== 拆到后厨,就是四件事:
| 任务 | 后厨语言 | 干啥 | 为什么重要 |
|---|---|---|---|
| 数据清洗 | 洗菜、择菜、挑坏的 | 处理缺失值、异常值、不一致数据 | 保证食材干净,别让噪音把大厨带沟里 |
| 特征构建 | 切配、吊高汤、调新料 | 组合 / 分解 / 映射原始数据造新特征 | 把藏在数据里的非线性关系做出来 |
| 特征转换 | 统一秤、切成同样大小 | 缩放、归一化、离散化、编码 | 适配模型对输入的要求,收敛更快 |
| 特征选择 / 提取 | 只留有用的料、浓缩成精华 | 筛选或降维,去冗余去噪 | 降复杂度、提效率、增强可解释性 |
这四件事不是流水线上互不相干的四段——它们反复交织:你清洗时发现某列全是缺失,顺手就把它选掉了;你构建交叉特征时,又需要先把类别编码好。系列后面的每一篇,就是把这四件事各自展开。
3. 备料师的手艺 = 领域知识 × 数据洞察
为什么说特征工程是「艺术与科学的结合」?因为最值钱的特征,往往不是套公式套出来的,而是懂业务的人一眼看穿的:
- 泰坦尼克号的乘客名字里藏着
Mr./Master./Lady.——这是社会地位与年龄,直接影响获救率; - 电商日志里,「点击次数 / 浏览次数」这个比值(点击率),比两个原始计数都更有预测力;
- 广告场景里,「用户最近 7 天的历史 CTR」往往是单特征之王。
这些都不是模型能自己想出来的,是备料师结合业务逻辑「切配」出来的。这也是为什么特征工程很难被完全自动化——它吃的是人对业务的理解。(当然,自动化特征学习在把这件事往前推,后面会讲。)
4. 同一套料,离线和在线是两种备法
一个最容易被忽略、上线才踩的坑:训练时怎么算的特征,线上就得一模一样地算出来。但两条链路的约束天差地别。
| 离线(训练用) | 在线(预测用) | |
|---|---|---|
| 产出 | 特征 + 标注,供模型训练 | 只要特征,不要标注 |
| 算力/延时 | 海量数据、慢慢跑、可迭代 | 毫秒级、对延时和稳定性极敏感 |
| 工具 | Hadoop / Spark,容忍失败重跑 | 索引 / KV 存储,实时读取 |
| 心态 | 多做实验、多试特征 | 稳定压倒一切,出问题要能降级 |
铁律:同一个特征,离线和在线必须同口径。离线用「过去 30 天」,在线也得是「过去 30 天」,否则就是经典的「训练-服务偏差(train-serve skew)」——离线 AUC 很漂亮,一上线就崩。这条契约会在系统化框架里展开。
5. 整个系列的地图
把这个系列按「一道菜从毛坯到下锅」的顺序摆出来:
| # | 后厨环节 | 文章 | 讲什么 |
|---|---|---|---|
| 1 | 后厨全景 | 系统化框架 | 特征怎么用 / 怎么取 / 怎么监控(美团 CTR 实例) |
| 2 | 洗菜择菜 | 数据预处理 | 数据观察、清洗(异常值 / 缺失值)、整理 |
| 3 | 切配调料 | 特征构建 | 特征组合、映射到新空间、衍生变量 |
| 4 | 吊高汤 | 特征提取与降维 | 稀疏表示、特征哈希、PCA / ICA / LDA |
| 5 | 只留好料 | 特征选择 | 过滤 / 包装 / 嵌入三大流派 + 自动化 |
| 6 | 翻译菜谱 | 特征编码 | One-Hot / Label / Count / Frequency / Target |
| 7 | 联考实战 | Criteo CTR 实战 | 用公开 CTR 数据把整条管线串起来 |
TL;DR — 三句话
- 特征工程 = 备料,算法 = 大厨。菜的上限在备料那一刻就定了,换模型只是在天花板下抠几个点。
- 它干四件事:清洗(洗菜)、构建(切配)、转换(统一秤)、选择提取(留好料)。四件事反复交织,不是死板流水线。
- 离线和在线是两种备法,但口径必须一致——否则离线再漂亮,上线也会崩(train-serve skew)。
下一篇进入后厨全景——特征工程系统化框架:从「哪些料能用、料从哪取、料坏了怎么报警」三个方案,看一套工业级特征体系是怎么搭起来的。