题目重点:用只含过去的lag特征构造监督问题,区别序列归纳偏置、滚动验证和外推限制。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 预测y_(t+h),仅使用预测时点可得变量;RF是普通树回归模型,不自动维护序列hidden state。
- 题目没有具体预测h/采样间隔/数据集,本文按单序列监督构造并讨论多实体变体。
解题路线
- RF可以输入lag y_t/y_(t−1)、过去rolling统计、已知日历和外生变量做监督预测;它不原生表达顺序/动态记忆,但不等于不能处理任何时序。
- 每一特征标明available time:预测t+h时rolling窗口只能截至t。先shift再rolling,避免把target或未来均值混进来;天气未来值若只离线观测而上线未知,也会泄漏。
- 用rolling/expanding时间验证,训练早段预测后段,间隔按重叠窗口/label horizon/数据发布延迟设。随机split可能让邻近相似窗口跨集合,离线过于乐观。
- 多步可direct每horizon模型或recursive把预测当后续lag;递归误差传播、训练时真实lag而推理用预测lag差异要测。不用未来真值填lag证明recursive很好。
- 常规树叶输出训练标签均值,森林平均不能天然线性外推到训练label范围之外;趋势强时对残差/差分建模或其他外推结构可作为候选,验证还原与漂移。
- 先做last value/seasonal naive基线,再比较树、统计模型或序列NN的任务表现与维护成本。seasonal周期、missing/不规则采样与entity分组也要入合同,不因“时序”就无条件选RNN。
手动走一遍
预测明天销量可用今天/昨天和过去7日均值;若预处理给特征“以明天为中心7天均值”,已含未来销售,RF score好仍无效。以最后200天为未来验证且仅用当时可得数据更接近上线。
规模与取舍
特征构造用rolling可O(T),朴素每窗口O(Tw);RF训练/推理随树数深度与特征量变化。递归预测H步还串行H次,direct预测训练多模型成本另计。
易错点与追问
容易失分的边界
- 把RF不原生序列当绝对不能。
- rolling包含未来。
- 随机split相邻窗口泄漏。
- recursive未来lag用真值。
- 树均值输出当趋势外推。
继续深挖
- 不规则采样怎样定义lag?
- 多店铺新店泛化怎样拆组与时间?
- rolling gap如何由horizon确定?
- 外生变量发布延迟怎么模拟?
技术参考
- RandomForestRegressor 官方文档:回归森林输出与参数合同参考;未声称运行某版本API。
- scikit-learn lagged feature 官方示例:lag构造与时间验证参考,官方示例用boosting,本文RF应用是监督特征构造推论。
