4. 特征工程回顾:传统时序特征在间歇场景下的失效分析
在进入因果特征提取之前,必须正视一个残酷的现实:传统时序特征工程在间歇需求场景下大面积失效。这些在连续、高频、平稳序列上表现优异的特征,一旦面对大量零值、突发脉冲和长间隔周期,其统计基础就会崩塌。本节将系统回顾三类核心传统特征——滞后特征、滑动窗口统计特征、季节性特征——并逐一剖析它们在间歇场景下的失效机理。
4.1 滞后特征(Lag Features)的失效
滞后特征是最基础的时序特征,通过将历史时刻的需求值直接作为当前时刻的输入特征,捕捉序列的自相关性。其核心假设是:t-1 时刻的需求对 t 时刻有稳定的预测价值。
间歇场景失效根因: 当需求序列中零值占比超过 60% 时,滞后特征矩阵中大量样本的滞后值均为 0,导致特征与目标之间的相关性趋近于零,模型无法从“全是零”的特征中学习到有效模式。
具体失效表现如下表所示:
| 失效维度 | 连续需求场景(有效) | 间歇需求场景(失效) |
|---|---|---|
| 自相关结构 | ACF/PACF 呈现平滑衰减或截尾,滞后阶数可解释 | ACF 在零值区间塌陷,仅在脉冲点出现虚假尖峰 |
| 特征稀疏度 | 滞后特征矩阵密度 > 80% | 滞后特征矩阵密度 < 30%,大量样本全零行 |
| 信息增益 | 滞后 1-7 阶对预测有显著贡献 | 滞后 1-7 阶信息增益接近 0,甚至引入噪声 |
| 跨序列一致性 | 不同 SKU 的滞后结构相似 | 每个 SKU 的脉冲间隔不同,滞后阶数无法统一 |
实战经验: 在间歇需求场景下,直接使用滞后 1-7 阶特征通常会使树模型的特征重要性排名垫底,甚至不如随机噪声特征。建议在特征筛选阶段直接剔除纯滞后特征,或将其与“距上次需求间隔”等因果特征组合使用。
4.2 滑动窗口统计特征的失效
滑动窗口特征(滚动均值、滚动标准差、滚动最大值等)通过局部窗口内的统计量来平滑噪声、捕捉趋势。其核心假设是:窗口内的需求分布是相对稳定的,统计量能够代表近期行为。
在间歇场景下,滑动窗口特征面临三个致命问题:
- 窗口内零值主导: 当窗口宽度为 7 天时,若 7 天内只有 1 次需求脉冲,滚动均值 = 脉冲值/7,远低于真实需求水平,导致特征严重失真。
- 窗口边界敏感: 脉冲恰好落在窗口边界时,统计量会发生剧烈跳变。例如,滚动均值在脉冲进入窗口时突然升高,在脉冲离开窗口时突然降低,这种“伪趋势”会误导模型。
- 窗口宽度选择困难: 连续场景下窗口宽度通常由业务周期决定(如 7 天、30 天),但在间歇场景下,不同 SKU 的需求间隔从几天到几个月不等,单一窗口宽度无法适配所有序列。
避坑指南: 不要试图通过增大窗口宽度(如从 7 天改为 30 天)来解决间歇问题。过宽的窗口会使统计量过于平滑,完全丧失对近期脉冲的响应能力,同时引入大量历史无关信息。在间歇场景下,滑动窗口特征的 AUC 贡献通常低于 0.55,建议直接弃用。
4.3 季节性特征的失效
季节性特征通过傅里叶变换、季节性分解(STL)或周期性虚拟变量来捕捉需求的周期性模式。其核心假设是:需求序列存在稳定的、可重复的周期成分。
在间歇场景下,季节性特征面临以下挑战:
- 周期被零值打断: 即使存在周季节性(如每周五有需求),但若某周五恰好为零,则周期模式被破坏,傅里叶变换无法提取稳定的频率成分。
- 虚假周期检测: 随机出现的脉冲可能被 STL 分解误判为周期成分,导致模型学习到不存在的“伪季节”。
- 多周期混淆: 不同 SKU 的需求间隔不同,有的呈现月周期,有的呈现季度周期,统一建模时季节性特征无法对齐。
4.4 传统特征失效的根源总结
将三类特征的失效根源归纳如下:
| 特征类型 | 失效根源 | 数学/统计表现 | 对模型的影响 |
|---|---|---|---|
| 滞后特征 | 零值主导导致自相关结构崩塌 | ACF 在零滞后阶数附近无显著峰值 | 特征重要性归零,模型退化为均值预测 |
| 滑动窗口特征 | 窗口内分布不稳定,统计量失真 | 滚动均值方差极大,窗口边界处跳变 | 引入伪趋势,降低模型泛化能力 |
| 季节性特征 | 周期被零值打断,无法提取稳定频率 | 傅里叶频谱能量分散,无显著主频 | 模型学习到虚假周期,过拟合风险升高 |
关键认知转变: 传统时序特征的核心假设是“历史会重复”,而间歇需求的核心特征是“历史不会简单重复”。因此,特征工程必须从“统计描述”转向“因果推断”——不再问“过去发生了什么”,而是问“什么原因导致了需求的发生”。