机器学习进阶文档深度页
TimeSeriesSplit
训练窗口始终早于验证窗口,可设置 gap 模拟标签延迟或隔离边界。
学习前需要掌握
时间索引内容待补充交叉验证
背景与问题
普通 KFold 会让未来数据进入训练;滚动均值、滞后特征和标准化也必须只使用当时历史。
概念定义
时间序列验证常用扩展窗口,后轮包含更多历史但从不随机打乱未来。
直观理解
每次都用过去预测下一段未来,时间箭头不能反转。
核心原理
数据先排序;窗口长度、测试跨度和 gap 必须模拟真实预测频率。多实体时还需结合群组。
数学表达
核心表达
数据先排序;窗口长度、测试跨度和 gap 必须模拟真实预测频率。多实体时还需结合群组。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1按时间排序
- 2确定预测跨度
- 3设置训练窗口/test_size/gap
- 4窗口内 fit 预处理
代码对应位置
示例 1TimeSeriesSplit 示例:对应文档中的可靠评价或训练流程。
计算与实现步骤
- 1
按时间排序
- 2
确定预测跨度
- 3
设置训练窗口/test_size/gap
- 4
窗口内 fit 预处理
- 5
逐窗口评价
- 6
观察随时间变化
代码实现
示例 1
TimeSeriesSplit 示例
TimeSeriesSplit 示例
scikit-learn
example_01.py用途:对应文档中的可靠评价或训练流程。
cv=TimeSeriesSplit(n_splits=5,test_size=30,gap=5)
r=cross_validate(model,X_time,y_time,cv=cv,scoring="neg_mean_absolute_error")代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
对应文档中的可靠评价或训练流程。
model- 组合预处理和估计器的模型对象。
Step 1 · 1–2 行
数据边界和划分方式是代码含义的一部分。
cv=TimeSeriesSplit(n_splits=5,test_size=30,gap=5)
r=cross_validate(model,X_time,y_time,cv=cv,scoring="neg_mean_absolute_error")代码与数学原理
减去训练均值并除以训练标准差,对应代码中的 mean/std 或 StandardScaler。
预期输出或运行结果
5 个按时间递进的验证 MAE。
常见错误 · 4 条
- 不要在测试集上调用 fit 或 fit_transform;测试集只能复用训练参数。
- shuffle
- 未来窗口特征
- 全时段标准化
实际应用
- 需求预测
- 流失与设备预测
常见错误
shuffle
未来窗口特征
全时段标准化
文档来源
13|交叉验证:可靠评估与模型选择原始文档
学习资料/learning_tech/13_cross_validation.md- §8 时间序列:TimeSeriesSplit
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。