把数据处理当作模型的一部分
输入字段的含义、生成时间、缺失原因和标签来源要写进数据字典。EDA 先查分布、重复实体、异常单位和类别比例;检查测试集的目标分布后反复改模型,也会污染最终评估。
核心知识点
| 处理 | 要理解什么 | 检查边界 |
|---|---|---|
| 缺失值 | 填充值可用训练集统计量,并保留必要的缺失指示 | 缺失可能具有业务含义,不能随意当零 |
| 数值缩放 | 标准化减均值除标准差;鲁棒缩放减少极端值影响 | 树模型通常不依赖标准化;距离模型往往依赖 |
| 类别编码 | one-hot 不引入大小顺序;序数编码只在真实有序时使用 | 未知类别和高基数需要明确策略 |
| 特征构造 | 预测时点已经知道的变量才能使用 | 结案结果、未来交易不能预测当前决策 |
| 特征选择 | 根据训练数据选择,随交叉验证折重新拟合 | 全量标签筛选后再验证仍然泄漏 |
| Pipeline | 串联预处理与估计器;ColumnTransformer 分列处理 | 每个验证折都应独立拟合处理器 |
训练时调用 fit;验证、测试和线上只使用已学到的参数做 transform/predict。Pipeline 降低遗漏风险,但不能修复原始字段中的未来信息。
手算与反例
虚构训练值为 2、4、6,均值为 4;测试值为 100。若用全量均值 28 处理训练数据,测试分布就进入了学习过程。用训练统计量处理测试出现极端值,是需要分析的现象,不应偷偷重新拟合缩放器。
同一用户的两条记录分别进入训练和测试,模型可能记住用户。先按实际泛化目标做实体或时间划分,再处理特征。
练习与完成标准
为虚构工单设计三列数值、两列类别和一个目标。列出每列的可用时点、缺失处理和未知类别行为,画训练/验证/服务的管线。标出每个 fit 的数据来源。本次没有运行 Python 管线。
复习问题
- 为什么标准化器也需要随交叉验证重新拟合?
- 类别编号 1、2、3 为什么不一定代表距离?
- Pipeline 能自动识别结案信息泄漏吗?
阅读依据与核验范围
2026-10-07:AI 助手协助原创整理并核对原始章节。示例、手算和练习由本站设计;未执行的任务不作为实验结论。
原始资料与核验依据
- Google ML Crash Course:分类、数据与公平性Google for Developers · 持续维护网页;分类指标页 2026-01-12 · 访问于 2026-10-07
- scikit-learn 用户指南:算法、验证与校准scikit-learn 贡献者 · 官网 1.9.1;main 快照 2f7da7445dc5 · 访问于 2026-10-07
继续探索
哪些笔记引用了这里
学习路径:AI 系统学习主线:从基础到应用
第 4 / 21 步 · 验证任务:为数值/类别字段写处理方案,标注所有 fit 的训练来源。
学习路径:传统机器学习支线:从特征到可信评估
第 1 / 10 步 · 验证任务:画出数值/类别处理器,标注每个 fit 的数据来源。
学习路径:MLOps 支线:从可复现运行到监控反馈
第 1 / 8 步 · 验证任务:列训练与服务共用的预处理与字段语义。