大数跨境

【AI加油站】第二百一十部:《特征工程的艺术》精华解读:90%的机器学习工作,都藏在这项“艺术”里(附下载)

【AI加油站】第二百一十部:《特征工程的艺术》精华解读:90%的机器学习工作,都藏在这项“艺术”里(附下载) 人工智能产业链union
2026-09-12
7
导读:【AI加油站】第二百一十部:《特征工程的艺术》精华解读:90%的机器学习工作,都藏在这项“艺术”里(附下载)

核心总结

好的特征,能让简单的模型打败复杂的模型。

引子:一道数学题背后的秘密

先看一道经典数学题:一只狗以每小时 10 英里的速度,在两位相向而行、相距 100 英尺、速度均为 5 英里/小时的配偶之间来回跑。问狗总共跑了多远?

若试图用微积分计算每一段位移,问题将异常复杂;但若换个角度——先算出两人相遇时间,再乘以狗的速度,答案便迎刃而解。

机器学习面临同样的困境。大多数算法接收的是“特征向量”,即对现实世界的特定视角描述。选择正确的表达方式,往往比调整算法本身更能提升性能。这正是特征工程的核心。

一、什么是特征工程?

特征工程是将问题领域转化为适合机器学习技术处理的过程,主要涉及:

  • 特征的发现:从原始数据中识别有价值的信息。
  • 逐步改进:基于领域知识和模型表现,持续优化特征。

正如 Andrew Ng 所言:“应用机器学习基本上就是特征工程”。

关键区别:原始数据 ≠ 特征

例如,原始数据是“日期”列,而特征可能是从中提取的“年份”、“月份”、“星期几”或“是否周末”。特征工程的本质是决定如何加工原始数据,使其能被 ML 算法更好地理解

二、为什么特征工程如此重要?

1. 它决定了模型的上限

“有些机器学习项目成功了,有些失败了。区别是什么?最重要的因素就是所用的特征。” ——Pedro Domingos

优秀的特征能让简单模型超越复杂模型,而糟糕的特征会让最先进的算法也无能为力。

2. 它占据了工业 ML 中的大部分精力

据统计,特征工程占据工业级机器学习项目约 90% 的工作量。这不仅需要技术能力,更需要对业务和数据的深刻理解。

3. 它是注入领域知识的主要途径

在医疗诊断等场景中,医生的专业判断需转化为可计算的特征。特征工程是将人类专业知识转化为机器可理解形式的关键桥梁

三、ML 生命周期 vs FE 生命周期

标准 ML 流程

原始数据 → EDA(探索性数据分析)→ 选择模型 → 特征生成 → 划分训练/验证/测试集 → 训练 → 超参数调优 → 评估

特征工程流程的特殊之处

  1. 必须有独立的开发测试集:反复查看验证集表现本质上是“窥探”数据。若只有一份测试集,最终评估结果会过于乐观。
  2. 建议保留两份最终特征集
    • 优化集:使用全部技巧,性能高但过拟合风险大。
    • 保守集:仅使用稳定特征,性能略低但更可靠。
    • 仅在优化集显著优于保守集时,才采用优化集。
  3. 这是一个迭代过程:特征工程不是一步到位,而是“实验→分析错误→改进特征→再实验”的循环。

四、核心分析工具:EDA 与 Error Analysis

1. 探索性数据分析(EDA)

即使缺乏领域知识,也可通过数据分析获取价值:

  • 检查各列值的分布(均值、中位数、极值、方差等)。
  • 使用箱线图发现异常值。
  • 计算特征与目标变量的相关性。
  • 利用散点图、透视表等可视化工具。

关键心态:对可疑的数据行为保持怀疑。若实际数据模式与领域知识不符,可能揭示了数据提取错误或采样偏差。

2. 错误分析(Error Analysis)

如果说 EDA 关注“数据长什么样”,错误分析则关注“模型在哪出错及原因”。

实操方法:

  • 找出误差最大的样本逐个深入分析。
  • 进行消融实验(Ablation Study):逐一移除某个特征,观察误差变化。
  • 若移除某特征导致误差大幅增加,说明其关键;若误差反而下降,说明其引入了噪声。

案例:在预测城市人口任务中,都柏林等历史名城被严重高估。消融实验发现,“计数类特征”(如维基百科提及次数)是主因。解决方案是对这些特征应用对数变换以压制极端值影响。

五、特征操作的三大流派

流派一:合并与组合(Combining Features)

1. 归一化(Normalization)

不同特征量纲不同(如距离与体重),直接输入会增加算法学习难度。常用方法包括:

  • Min-Max 缩放:压缩到 [0,1] 区间。
  • 标准化(Standardization):转换为均值 0、方差 1 的分布。
  • 单位长度缩放:用范数除以向量长度。

关键提醒:归一化参数只能在训练集上计算,然后应用到验证/测试集。在测试集重新计算是常见错误。

2. 离散化(Discretization)

将连续值转换为离散区间。例如年龄划分为“儿童”、“青少年”等。当数值小区间差异不重要但跨区间差异关键时(如 5 岁与 6 岁 vs 85 岁与 86 岁),此法尤为有效。

3. 描述性特征(Descriptive Features)

用统计摘要代替原始数据,常见于图像等高维数据:

  • 直方图:统计数值区间频次。
  • 文本长度:在 NLP 中往往具有强预测力。
  • 偏度、峰度:描述数据分布形态。

4. 处理异常值

原则:不要轻易删除异常值!保险数据中,巨额索赔恰恰是模型需关注的核心。仅当确信值来自数据错误(如年龄 999 岁)时才删除。

流派二:扩充与展开(Expanding Features)

1. 可计算特征(Computable Features)

通过算术运算生成新特征,如面积=长×宽、BMI=体重/身高²。当算法无法自动学习某些函数关系(如线性模型难以学习乘积)时,显式添加效果显著。

2. 缺失值处理(Imputation)

常见策略:

  • 删除含缺失值的样本(仅当缺失很少时)。
  • 添加“是否缺失”指示特征。
  • 用均值/中位数/众数填充。
  • 训练模型预测缺失值。
  • 使用支持缺失值的算法。

洞察:有时“缺失”本身就是强信号,如用户未阅读详情页可能预示购买意愿低。

3. 独热编码(One-Hot Encoding)

将类别特征转换为多个二元特征。

4. 目标率编码(Target Rate Encoding)

用该类别对应的目标变量平均值替代类别特征。注意:必须在交叉验证的折外(Out-of-Fold)方式下计算,以防目标泄露。

流派三:缩减与降维(Reducing Features)

1. 特征选择(Feature Selection)

三种主流方法:

  • 过滤法(Filter):基于统计指标独立评估特征相关性。
  • 包装法(Wrapper):将特征选择视为搜索问题(如前向选择、后向消除),计算量大但效果通常更好。
  • 嵌入法(Embedded):算法自带选择机制,如 L1 正则化、随机森林特征重要性、决策树分裂节点。

技巧:添加随机特征作为基线,若真实特征效用低于随机特征则删除。

2. 降维(Dimensionality Reduction)

  • 主成分分析(PCA/SVD):投影到低维空间。
  • 特征哈希:映射到固定大小向量,牺牲可解释性换取效率。
  • 词嵌入:将高维稀疏词向量压缩为稠密低维向量。

3. 正则化(Regularization)

通过增加惩罚项(L1 或 L2),鼓励模型使用更少特征或更小权重,防止过拟合。

六、四大数据类型案例精讲

1. 图数据(Graph Data)——以维基城市为例

任务:利用维基百科关系图预测城市人口。

思路:提取出入边关系、按频率排序截取、独热编码高频值、添加计数特征。

发现:城市在维基的信息量本身是人口的强预测因子。针对历史名城被高估的问题,对所有计数应用对数变换可大幅改善结果。

2. 时间序列数据(Timestamped Data)

挑战:历史数据获取难、实体随时间变化、多对多关系复杂。

策略:使用滞后期特征、差分特征、滑动窗口均值、指数移动平均(EMA)。

教训:当历史特征变异性过高时,平滑处理可能降低性能。探索过程本身即为价值。

3. 文本数据(Textual Data)

挑战:海量特征、幂律分布、顺序信息关键。

构建路径:

  1. 数字标记:离散化文本中的数字。
  2. 词袋模型:筛选 Top K 最有信息量的词。
  3. 词干提取 + 停用词移除:合并变形词,移除无信息词。
  4. Bigram:捕捉局部上下文。
  5. Skip-bigram + 特征哈希:容忍跳跃并压缩维度。

洞察:“关键词 + 数字”连续出现是极强信号,上下文至关重要。

4. 图像数据(Image Data)

挑战:低层特征难理解、对微小变化敏感、需领域知识。

探索路径:

  1. 像素即特征:性能差且训练慢,像素特征重要性极低。
  2. 高斯模糊:略有改善但仍低于基线。
  3. 数据增强:旋转、平移生成变体,提升鲁棒性。
  4. 直方图:用计数代替像素,性能接近基线且对旋转鲁棒。
  5. 角点检测:统计剧烈变化区域,首次超过基线

启示:缺乏对齐是致命缺陷。领域专家会直接采用纹理特征(如 LBP),而非盲目尝试像素,这展示了领域知识如何节省试错时间

七、进阶话题

1. 自动化特征工程(AutoFE)

Featuretools 系统:自动从关系数据库推导实体级、直接及关系级特征。

遗传编程:通过演化公式树自动发现特征组合,但目前效果有限。

2. 深度学习与特征工程

深度学习并非特征工程的终结者:

  • 归一化、独热编码等技术仍然有用。
  • 预训练模型可作为特征提取器。
  • 可将 RNN 隐藏状态作为固定长度特征向量,拼接入传统模型。

八、避坑指南

1. 目标泄露(Target Leak)

若特征隐含了目标变量信息(如用历史流失率填充缺失值且未做折外估计),模型会在训练集表现完美但在生产环境失效。

2. 测试集污染

每次查看测试集结果都会造成污染。需保留一个最终测试集,仅在开发完成后使用一次。

3. 过拟合不仅仅是参数问题

反复查看验证集表现并据此调整特征,属于隐式过拟合。务必使用独立的开发测试集。

4. 不要忘记文档化

记录实验过程、放弃原因及最终决策依据,避免数月后遗忘。

九、给实践者的建议

  1. 先从简单开始:建立基线模型,若适合深度学习且有足够数据可优先尝试 DL。
  2. 尝试 AutoML 工具:快速生成候选特征集。
  3. 深入错误分析:逐个检查误差最大样本,理解犯错原因。
  4. 随时记录实验:避免重复劳动和逻辑混乱。
  5. 向领域专家请教:几分钟的咨询可能节省数月试错时间。

结语:特征工程的“艺术”所在

回到开头的数学题,好的特征工程就是帮你从正确的角度看待问题,而非在糟糕框架里拼命优化。

在 IBM Watson 团队开发问答系统的经历表明,大量的错误分析和“白板时间”是最具生产力的部分。

工具可以重新定义问题。拥有完备的“特征工程工具箱”,面对棘手问题时便能迅速选择正确方法。本书的核心价值在于建立系统的特征工程思维:知道有哪些可能性、何时何法、如何从错误中学习。

本文内容基于 Pablo Duboue 所著《The Art of Feature Engineering Essentials for Machine Learning》(Cambridge University Press, 2020)整理解读。

【声明】内容源于网络
0
0
人工智能产业链union
人工智能产业链联盟,旨在汇聚全球人工智能领域的创新力量,共同推动人工智能技术的研发、应用与产业化。联盟以基础技术、人工智能技术及人工智能应用为核心,打造了一个完整、高效、协同的人工智能生态链。
内容 3315
粉丝 1
人工智能产业链union 人工智能产业链联盟,旨在汇聚全球人工智能领域的创新力量,共同推动人工智能技术的研发、应用与产业化。联盟以基础技术、人工智能技术及人工智能应用为核心,打造了一个完整、高效、协同的人工智能生态链。
总阅读163.0k
粉丝1
内容3.3k