数据预处理
把原始数据整理成模型能够稳定使用、结果能够被解释的输入。预处理不是“把表洗干净”的流水线动作,而是在尽量保留任务相关信息的前提下,控制缺失、异常、量纲、编码、冗余和样本结构带来的偏差。
一道建模题里,模型选得再巧,若训练集泄漏了测试信息、量纲未对齐、类别乱编码,结论也会先在数据环节失真。本门类提供的是进入回归、分类、聚类、时间序列等方法之前的共同底座。
这一门类解决什么问题
原始数据进入数学模型前,通常会碰到六类具体障碍:
- 缺测:传感器掉点、问卷拒答、统计口径空洞;
- 异常:录入错误、极端事件、传感器尖峰;
- 量纲与分布:身高与收入混建、严重偏态、异方差;
- 形态不匹配:类别无法直接进线性模型、连续量需要分级、效应存在交互;
- 冗余与高维:指标高度相关、变量多于有效样本;
- 样本结构失衡:正类极少、时序噪声淹没趋势。
预处理的目标不是让数据“看起来漂亮”,而是让后续模型的假设更接近成立,并让误差来源可追溯。每一项处理都应能回答:改变了哪些样本/变量、依据什么规则、如何避免泄漏、如何验证没有伤及信号。
如何选择方法
| 问题信号 | 优先考虑 | 所在子目录 |
|---|---|---|
| 少量缺失且近似随机 | 删除或均值/中位数/众数插补 | 缺失值处理 |
| 缺失依赖其他变量结构 | KNN 插补 | 缺失值处理 |
| 缺失比例高且要保留不确定性 | 多重插补 | 缺失值处理 |
| 怀疑极端值或录入错误 | 箱线图、3σ 法则(先可视化再决策) | 异常值检测 |
| 变量量纲不同、要进距离模型/PCA/正则化 | 标准化;有界缩放需求时用归一化 | 数据变换 |
| 严重右偏、方差随均值增大 | Box-Cox 等变换 | 数据变换 |
| 时序毛刺多、只要趋势 | 移动平均 | 数据平滑 |
| 要去噪但尽量保峰/保导数 | Savitzky-Golay 滤波 | 数据平滑 |
| 名义类别进回归族模型 | 哑变量编码 | 特征工程 |
| 需要分级规则或评分卡 | 离散化 | 特征工程 |
| 效应随另一变量改变 | 交互项 | 特征工程 |
| 变量多且相关,要压缩或可视化 | PCA | 降维与特征筛选 |
| 要可解释的变量子集线性模型 | 逐步回归等筛选 | 降维与特征筛选 |
| 分类问题少数类过少 | 类别权重优先,必要时 SMOTE | 不平衡数据处理 |
这张表用于快速定位,不是决策树式的唯一答案。最终选择还要看样本量、可解释性要求、题面约束和验证条件。能用更简单、更少假设的处理就达到目的时,不必叠床架屋。
推荐工作流程
- 认数:变量类型、单位、采样频率、类别水平、缺失机制、标签定义;
- 切分:先划分训练/验证/测试(或交叉验证折),再谈一切拟合类预处理;
- 清洁:异常值诊断 → 缺失处理 → 必要的平滑(时序);
- 变换:标准化/归一化/Box-Cox 等,参数只在训练折估计;
- 构造:哑变量、离散化、交互项等特征工程;
- 压缩或筛选:PCA 或逐步回归/正则化,服务于后续模型目标;
- 结构校正:仅在训练折处理不平衡;
- 复核:对照处理前后分布、泄漏检查、下游指标与敏感性。
时间序列还要遵守时间顺序切分,不能随机打乱后标准化再预测未来。
使用提醒与常见陷阱
- 泄漏:用全样本均值做标准化、用测试集分位数分箱、先 SMOTE 再划分,都会让验证分数虚高;
- 不可逆误解:平滑、删失、分箱会改变数据含义,报告中需保留原始定义;
- 为清洗而清洗:没有异常证据就删点、没有偏态问题就强行变换,可能损失有效信号;
- 评价错位:不平衡数据只报准确率、降维只报累计方差而不看下游任务,都会误判处理是否成功;
- 记录缺失:每一步影响的样本数、变量列表、参数和随机种子都应留下,保证复现。
与各子目录的对应关系
| 子目录 | 核心任务 | 典型出口 |
|---|---|---|
| 缺失值处理 | 在偏差与方差之间补全或放弃缺损信息 | 完整设计矩阵 |
| 异常值检测 | 识别需核查、截断、稳健化或剔除的点 | 清洁样本与诊断图 |
| 数据变换 | 统一尺度、改善对称性与线性近似 | 变换后的数值特征 |
| 数据平滑 | 抑制高频噪声,保留趋势或峰形 | 平滑序列/导数 |
| 特征工程 | 让类别、分段、交互可被模型表达 | 扩展后的特征表 |
| 降维与特征筛选 | 压缩冗余或选出精简变量子集 | 低维得分或子集模型 |
| 不平衡数据处理 | 纠正训练分布使少数类可学 | 重采样或加权训练策略 |
PCA 侧重特征提取(新变量是原变量组合),逐步回归侧重特征筛选(保留原变量)。二者都在降维与筛选目录中,但问题表述与解释方式不同,选型时不要混用口径。
推荐学习顺序
- 先读本导读,建立“先切分、后拟合、再验证”的纪律;
- 缺失值与异常值:决定样本边界;
- 数据变换:决定数值尺度;
- 平滑(若是时序/信号题);
- 特征工程:把原始字段变成模型语言;
- 降维/筛选:控制复杂度;
- 不平衡处理:仅当分类标签结构需要时进入。
进入具体方法页后,建议按「直观理解 → 适用边界 → 原理 → 参数 → MATLAB → 结果解释 → 误区」阅读,并亲手跑通示例。随后章节中的回归、分类、聚类、优化等,默认你已能提供一份无泄漏、可复现、可解释的数据输入;本门类的质量,直接决定后面模型的上限是否可信。