为什么划分就是一切
模型要在没见过的数据上评判。金融中有三组数据:用于拟合的训练集、用于选择设置的验证集,以及只使用一次、用来报告结果的测试集。它们必须遵循时间:用过去训练,用接下来的一段验证,用最后一段测试。随机划分会把同一场风暴里的日子同时放进两组,模型于是记住了邻居而不是学到规则。泄漏是指验证期或测试期的信息进入了训练步骤,常见有四种:在所有日子上拟合的缩放器、用到未来价格的特征、事后才知道的类目标列,以及在时间上重叠的标签。
重叠的标签需要特别小心。若标签是未来 个月的收益,则训练行 与测试行 的标签只要 就共享月份,所以测试期之前的最后 个训练行已经知道了一部分测试结果。解决办法是清洗(去掉这些行)和禁运(留出安全间隔),后面的主题会讲。用一个小数字看看规模:有 个月度行时, 的划分把测试期放在第 行,当 时,每个边界附近有两个训练行发生重叠。
- 按时间划分:用过去训练,用下一段验证,用最后一段测试,且只看一次测试。
- 四种泄漏:已拟合的预处理、未来特征、类目标列和重叠标签。
- 打乱后的得分是警示信号:如果打乱日子使得分大幅上升,说明模型在记邻居。
实验:评分内容
- 测试期从哪里开始10 分
- 训练集的大小10 分
- 缩放器从未来学到的10 分
- 重叠的标签15 分
- 打乱抬高了多少10 分
- 时间序列的正确划分10 分
- 无泄漏的流程10 分
- 泄漏的种类10 分
- 为什么打乱会抬高得分15 分