时间序列特征构造:滑动窗口滞后特征与滚动统计的工程实践
·
🤍 前端开发工程师、技术日更博主、已过CET6
🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1
🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》
🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》
文章目录
这是 水果销量预测、时序预测精度提升最大的特征工程手段,也是 AutoGluon / LightGBM 最吃的特征。
一、核心概念(30秒看懂)
时序预测 = 用过去预测未来
所以必须构造:
- 滞后特征(Lag):昨天销量、上周同日销量、上上周销量
- 滑动窗口(Rolling Window):近7天均值、近14天最大值
- 滚动统计:均值、中位数、标准差、增长率
水果销量最强规律:
今天销量 ≈ 上周同一天销量
今天销量 ≈ 近7天平均销量

二、工程实践3步法(标准流程)
所有时序特征必须按 SKU(商品) 分组计算!
不能全表混算!
第1步:数据预处理(必须做)
- 按 商品 + 日期 排序
- 补齐连续日期(无缺失天)
- 确保时间单调递增

# 伪代码
df = df.sort_values(['sku', 'date']).reset_index(drop=True)
三、第2步:构造滞后特征(Lag Features)
最有效、必加的 6 个滞后特征
# 按商品分组
g = df.groupby('sku')['sales']
# 1天前(昨天)
df['lag_1'] = g.shift(1)
# 2天前
df['lag_2'] = g.shift(2)
# 3天前
df['lag_3'] = g.shift(3)
# 7天前(上周同日,最强!)
df['lag_7'] = g.shift(7)
# 14天前(上上周同日)
df['lag_14'] = g.shift(14)
# 30天前
df['lag_30'] = g.shift(30)

业务价值
- lag_1:短期趋势
- lag_7:周规律(水果销量最强)
- lag_14:双周稳定性
- lag_30:月度趋势
四、第3步:滑动窗口 + 滚动统计(Rolling)
最实用 8 个特征(直接复制)
g = df.groupby('sku')['sales']
# 近7天均值
df['roll_mean_7'] = g.shift(1).rolling(7, min_periods=1).mean()
# 近14天均值
df['roll_mean_14'] = g.shift(1).rolling(14, min_periods=1).mean()
# 近30天均值
df['roll_mean_30'] = g.shift(1).rolling(30, min_periods=1).mean()
# 近7天标准差(波动大小)
df['roll_std_7'] = g.shift(1).rolling(7, min_periods=1).std()
# 近7天最大值
df['roll_max_7'] = g.shift(1).rolling(7).max()
# 近7天最小值
df['roll_min_7'] = g.shift(1).rolling(7).min()
# 近7天总和
df['roll_sum_7'] = g.shift(1).rolling(7).sum()
# 环比增长率(今日/昨日-1)
df['growth_rate_1'] = df['lag_1'] / df['lag_2'] - 1
✅ 工程关键:必须加 shift(1)
shift(1) = 只用过去数据预测今天
不加会造成数据泄露,模型上线必崩!
五、最强组合特征(精度暴涨)
这是生鲜/水果行业隐藏必杀技:
# 7日均值与上周同日加权(最准)
df['lag7_roll7_mean'] = (df['lag_7'] + df['roll_mean_7']) / 2
# 趋势特征:7日均 - 14日均
df['trend_7_14'] = df['roll_mean_7'] - df['roll_mean_14']
# 波动系数:标准差/均值
df['volatility_7'] = df['roll_std_7'] / df['roll_mean_7']
六、最终特征清单(直接喂给 AutoGluon)
lag_1, lag_7, lag_14
roll_mean_7, roll_mean_14
roll_std_7
roll_max_7, roll_min_7
trend_7_14
volatility_7
lag7_roll7_mean
这 10 个特征 = 时序预测 90% 的精度来源
七、工程避坑 4 条铁律
- 必须按 SKU 分组
- 必须排序
- 必须 shift(1) 防止数据泄露
- 必须补齐连续日期
违反任何一条,预测必崩!
八、一句话总结
滞后特征看历史同期
滑动窗口看趋势波动
加权组合看精准度
shift(1) 保工程安全
更多推荐



所有评论(0)