2. 基础概念回顾:训练集、验证集、测试集的定义与作用

在构建额度策略模型时,数据集的正确切分是模型泛化能力的基石。若切分不当,模型在历史数据上表现优异,上线后却可能因过拟合或数据泄露导致策略失效。本节系统回顾三个核心数据子集的定义与职责。

2.1 三大子集的定义与核心职责

子集名称 英文 核心职责 额度策略场景示例
训练集 Training Set 用于拟合模型参数(如 LightGBM 的树结构、叶子权重) 使用 2023 年 1–9 月的用户行为数据训练初始额度模型
验证集 Validation Set 用于模型选择、超参数调优、早停(Early Stopping) 在 2023 年 10 月数据上调整树深度、学习率,防止过拟合
测试集 Test Set 用于最终评估模型的泛化误差,模拟线上真实表现 在 2023 年 11–12 月数据上计算 KS、AUC,决定是否上线
关键原则:测试集在模型开发过程中只能使用 一次(最终评估时)。反复使用测试集调参会导致信息泄露,使测试集失去评估泛化能力的作用。

2.2 三者的层级关系与数据流向

下图展示了从原始数据到最终模型评估的完整数据流向,以及每个子集在模型开发周期中的位置。

训练集、验证集、测试集数据流向图 训练集 / 验证集 / 测试集 数据流向与职责 原始数据集 数据切分 训练集 (约 60%–70%) 验证集 (约 15%–20%) 测试集 (约 15%–20%) 模型训练 调参 / 早停 最终模型 泛化能力评估 说明: 训练集用于学习;验证集用于调参和早停(虚线反馈);测试集仅在最终评估时使用一次,保证评估结果无偏。 切分比例可根据数据量和时间跨度灵活调整,但测试集必须保持独立。

2.3 额度策略场景中的特殊考量

  • 时间顺序不可逆:额度策略建模必须按时间顺序切分,严禁随机打乱。例如:用 2023 年 1–8 月训练,9 月验证,10–12 月测试。若随机切分,未来信息会泄露到训练集中,导致模型高估用户还款能力。
  • 样本分布漂移:用户群体、宏观经济、风控政策随时间变化,训练集与测试集的分布可能不同。验证集应尽量接近测试集的时间窗口,以便早停策略捕捉漂移信号。
  • 拒绝推断影响:训练集通常只包含历史放款用户(有标签),而测试集可能包含被拒绝用户(无标签)。切分时需明确标注样本来源,避免在测试集上使用拒绝推断后的伪标签。
常见陷阱:在额度策略中,有人将验证集和测试集合并用于调参,认为“数据越多越好”。这会导致模型在测试集上过拟合,最终上线后 KS 衰减 10%–20%。务必保持测试集的 零次使用 原则。

2.4 切分比例的经验参考

数据量级 训练集 验证集 测试集 备注
小样本(< 5 万条) 70% 15% 15% 可考虑交叉验证替代固定验证集
中等样本(5–50 万条) 70% 15% 15% 时间序列切分优先
大样本(> 50 万条) 80% 10% 10% 验证集可适当缩小,节省调参时间
实践建议:在 LightGBM 中,可通过 valid_sets 参数直接传入验证集,配合 early_stopping_rounds 实现自动早停。测试集仅在最终评估时传入 predict() 方法,不参与任何训练过程。