核心要点

  • 滞后特征 lag:用 t-1、t-7、t-365 等历史值作为输入,捕捉自相关与周期。

  • 滑窗统计:滑动均值/方差/最值/分位数,平滑噪声、刻画近期水平与波动。

  • 周期编码:傅里叶项或对 hour/weekday 做 sin/cos 编码,表达周期性。

  • 防泄漏:所有特征只能用「当前时刻及之前」的数据,滑窗不能包含未来。

标准回答

主要特征族

  • 滞后特征(lag):把 \( y_{t-1}, y_{t-7}, y_{t-365} \) 等历史值作为特征,直接编码自相关和日/周/年周期。
  • 滑动窗口统计:对过去 k 步算滑动均值、方差、最大最小、分位数,平滑噪声并刻画近期趋势与波动。
  • 差分特征:一阶/季节差分表征变化量,弱化趋势。
  • 傅里叶 / 周期编码:对小时、星期、月份等用 \( \sin(2\pi k/T), \cos(2\pi k/T) \) 编码,避免「23 点与 0 点」断裂;多组傅里叶项可拟合复杂周期。
  • 日历 / 节假日特征:是否周末、节假日及其前后窗口、促销标志。

关键纪律:防未来信息泄漏

所有特征在时刻 t 只能使用 t 及之前的数据。滑窗、聚合统计必须是「截至当前」的因果窗口;标准化/编码的参数只能在训练集(更早时间)上拟合,再应用到验证/测试期。否则线下指标虚高、线上崩盘。

常见误区

⚠️ 常见踩坑

用全量数据算滑动均值或归一化参数,导致未来信息泄漏;以及对类别周期变量直接 one-hot 而丢掉周期连续性,应优先 sin/cos 编码。

追问

追问 1为什么用 sin/cos 编码周期变量而不是直接用数值?

直接用 0-23 的小时数会让模型认为 23 点和 0 点相距很远,但实际相邻。sin/cos 把周期映射到单位圆上,使首尾连续、距离反映真实周期关系,模型能正确学到周期性。

追问 2滞后特征会造成样本减少,怎么权衡?

构造 lag-k 会丢掉序列前 k 个无法填齐的样本,k 越大丢得越多。需在「覆盖最长有意义周期(如年 lag-365)」和「保留足够训练样本」间权衡,必要时对早期缺失做合理填充或缩短最大滞后。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。