4. 数据准备与预处理:训练集与测试集的时间切片、特征工程基础、缺失值与异常值处理对稳定性的影响
在额度模型的生命周期中,数据是模型稳定性的基石。本章聚焦于数据准备阶段最关键的三个环节:时间切片策略、特征工程基础以及缺失值与异常值处理。这些步骤不仅决定了模型训练的有效性,更直接影响了特征分布在不同批次间的稳定性,是预防批次偏移的第一道防线。
4.1 训练集与测试集的时间切片策略
额度模型通常基于历史授信与表现数据构建。为了模拟模型上线后的真实环境,必须严格按照时间顺序划分训练集与测试集,避免“未来信息泄露”导致的伪高稳定性。
4.1.1 时间切片原则
- 严格时序划分:以申请日期或观察点日期为轴,训练集必须早于测试集。例如,使用2023年1月-6月的数据训练,2023年7月-9月的数据测试。
- 避免随机抽样:在信贷场景中,随机划分会破坏时间序列的依赖性,导致模型在时序外推时性能急剧下降。
- 考虑季节性:若业务存在明显季节性(如春节、双十一),应确保训练集与测试集覆盖完整的季节周期,或使用跨年数据。
4.1.2 常见时间切片方案对比
| 方案 | 描述 | 优点 | 缺点 |
|---|---|---|---|
| 固定窗口 | 固定训练集长度(如最近6个月),滚动预测下个月 | 简单、计算量小 | 无法捕捉长期趋势变化 |
| 扩展窗口 | 训练集从起点开始,逐步向后扩展 | 数据量递增,稳定性好 | 计算成本高,旧数据可能过时 |
| 滑动窗口 | 固定窗口长度,每次向前滑动一个步长 | 适应概念漂移,时效性强 | 需要频繁重训练 |
| 多时间切片 | 同时使用多个历史窗口训练,集成预测 | 鲁棒性高,抗偏移能力强 | 模型复杂度高,部署成本大 |
实践建议:在额度模型初始开发阶段,推荐使用扩展窗口进行特征稳定性评估。它能最大化利用历史数据,同时通过对比不同时间切片的PSI值,直观发现特征分布的自然漂移趋势。
4.2 特征工程基础与稳定性考量
特征工程是额度模型的核心,但并非所有特征都适合直接入模。从稳定性角度出发,特征工程需要遵循以下原则:
4.2.1 特征构建原则
- 业务可解释性:特征应具有明确的业务含义,便于后续监控与归因。
- 统计分布稳定性:优先选择在时间切片上PSI值较低的特征。
- 缺失率可控:特征缺失率不应随时间剧烈波动。
- 避免未来信息:特征计算时只能使用当前时间点之前的数据。
4.2.2 常见特征类型与稳定性风险
| 特征类型 | 示例 | 稳定性风险 | 处理建议 |
|---|---|---|---|
| 聚合类特征 | 近3个月平均消费金额 | 窗口期选择不当导致分布偏移 | 使用多窗口对比,选择最稳定窗口 |
| 比率类特征 | 负债收入比 (DTI) | 分母接近0时产生极端值 | 进行截尾或分箱处理 |
| 时序类特征 | 距离上次申请天数 | 业务规则变更导致分布突变 | 监控规则变更,必要时重建特征 |
| 外部数据特征 | 征信查询次数 | 数据源不稳定或接口变更 | 建立数据源质量监控机制 |
关键指标:在特征工程阶段,建议对每个候选特征计算其在训练集与测试集之间的PSI值。PSI < 0.1 表示稳定性良好;0.1 ≤ PSI < 0.25 表示需要关注;PSI ≥ 0.25 表示特征不稳定,应谨慎入模。
4.3 缺失值与异常值处理对稳定性的影响
缺失值和异常值处理是数据预处理中看似简单、实则对稳定性影响巨大的环节。不同的处理方式会改变特征分布的形状,进而影响批次间的PSI值。
4.3.1 缺失值处理策略对比
| 策略 | 方法 | 对稳定性的影响 | 适用场景 |
|---|---|---|---|
| 删除缺失样本 | 直接删除含缺失值的行 | 改变样本分布,可能导致选择偏差 | 缺失率极低(<1%)且随机缺失 |
| 均值/中位数填充 | 用全局统计量填充 | 降低方差,使分布向中心收缩 | 缺失率较低,特征分布稳定 |
| 模型预测填充 | 用其他特征预测缺失值 | 引入模型偏差,可能放大偏移 | 缺失率较高,且特征间相关性稳定 |
| 缺失值作为独立类别 | 将缺失值编码为-999或单独分箱 | 保留缺失信息,但需监控缺失率变化 | 缺失具有业务含义(如“未查询到”) |
4.3.2 异常值处理策略对比
| 策略 | 方法 | 对稳定性的影响 | 适用场景 |
|---|---|---|---|
| 截尾处理 | 将超出百分位阈值(如99%)的值替换为阈值 | 抑制极端值波动,提高稳定性 | 特征存在长尾分布 |
| 分箱处理 | 将连续值离散化为分箱 | 降低对极端值的敏感度 | 特征与目标关系非线性 |
| 对数/Box-Cox变换 | 对特征进行非线性变换 | 改变分布形态,需验证变换后稳定性 | 特征分布严重偏态 |
| 删除异常样本 | 直接删除异常值所在样本 | 可能丢失重要信息,改变分布 | 异常值明显由数据错误导致 |
常见陷阱:在训练集和测试集上使用不同的缺失值填充策略(如训练集用均值填充,测试集用中位数填充)会直接导致特征分布偏移,使PSI值虚高。务必保证预处理逻辑在时间切片上完全一致。
4.4 数据预处理流程总结
为了确保特征稳定性,建议在数据准备阶段建立标准化的预处理流程:
- 时间切片划分:根据业务场景选择固定窗口或扩展窗口,确保训练集与测试集无时间重叠。
- 缺失值策略统一:在训练集上确定填充规则(如中位数填充),并固化该规则用于测试集和未来批次。
- 异常值处理:基于训练集确定截尾阈值或分箱边界,避免使用测试集信息。
- 特征稳定性预筛选:计算每个特征在训练集与测试集之间的PSI值,剔除PSI > 0.25的特征。
- 记录预处理参数:将填充值、截尾阈值、分箱边界等参数保存为配置文件,确保线上推理与离线训练一致。
核心原则:所有数据预处理步骤的参数必须完全基于训练集计算,并作为“冻结”的预处理管线应用到测试集和未来批次。任何在测试集上“学习”到的参数都会导致数据泄露,使稳定性评估结果失真。