ml-feature-engineeringlisted
Install: claude install-skill fieldlu/Machine-learning-skills
# 特征工程决策手册 — 先切分再造特征,统计量只认��练折
## R — 原文 (Reading)
> "Keep the first model simple and get the infrastructure right."
> (保持第一个模型简单,先把基础设施做对——基础设施主要指数据管道与特征处理链。)
>
> — Martin Zinkevich, 《Rules of Machine Learning》 Rule #4(Google 工程经验总结,公开文档;通行表述直引)
> 决定机器学习项目成败差异的最大单一因素,是所使用的特征;特征工程是把领域知识注入模型的主要通道。(转述)
>
> — 转述自 Pedro Domingos, "A Few Useful Things to Know About Machine Learning", CACM 2012 第 1 节(来源性质:业界公认综述论文)
> 表格类任务中,换更强算法带来的提升通常小于认真做特征带来的提升;垃圾进垃圾出(garbage in, garbage out)——模型放大的是你喂给它的信号质量。(转述,Kaggle 高排名选手赛后复盘的通行说法)
>
> — 工程实践共识(Kaggle community wisdom)
> **来源说明**: 本 skill 属批C"工程实践共识"系列——《机器学习》(西瓜书)不含工程落地内容
> (BOOK_OVERVIEW 批判: "全书不讲���据质量管理、特征管道版本化、线上-线下一致性"),
> 故 R 段改引业界公开文献并标注来源性质;凡无法保证逐字精确处一律标(转述)。
---
## I — 方法论骨架 (Interpretation)
特征工程 = 把原始字段翻译成模型假设空间听得懂的语言。四类字段各有自己的决策树:
- **数值特征**: 缺失与异常先行;变换三问——强偏态→对数变换;量纲混杂且模型是线性/距离类→标准化;需要分段稳定效应→分箱。树模型对单调变换免疫,不必白费。
- **类别特征**: 有序→序数编码保序;低基数无序→one-hot;高基数→折外目标编码(带平滑)/哈希/embedding。ID 与编号列永远不入模。
- **时间特征**: 只用"预测时刻之前"的信息——滞后项、历史窗口聚合、日历属性;窗口右端不得越过预测时刻。
- **特征交叉**: 线性模型需要手工交互项,树模型天然自带;优先领域知识驱动,拒绝暴力笛卡尔积。
两条元纪律高于一切技巧。其一,**先切分后变换**:均值、分位数、分箱边界、编码映射表等一切统计量只在训练折内学习,再 transform 到验证/测试——否则编码器本身就是泄漏源。其二,**重要性复盘**:训完必看特征重要性排序,异常高的特征先查泄漏再庆祝。
---
## A1 — 业界公开案例 (Past Application)
> 注: 西瓜书无对应案例(工程落地不在书内),本节改用业界公开案例充当类比素材。
### 案例 1: Google Play 推荐的 Wide & Deep 架构 (Cheng et al., 2016)
- **问题**: 推荐模型既要记住"见过就推"的历史共现规律,又要对没见过的组合有泛化能力。
- **方法论的使用**: wide 部分用手工特征交叉(已装应用 × 曝光应用)负责记忆;deep 部分把高基数稀疏类别嵌入低维稠密向量负责泛化;两路联合训练。
- **结论**: 特征交叉与 embeddin