时间序列数据建模中的特征工程技巧

WeakSmile +0/-0 0 0 正常 2025-12-24T07:01:19 特征工程 · 时间序列 · 大模型

时间序列数据建模中的特征工程技巧

时间序列数据建模是大模型训练中的重要环节,特征工程在其中起到关键作用。本文分享几个实用的特征工程技巧。

1. 时间特征提取

从时间戳中提取有用的统计特征:

import pandas as pd
from datetime import datetime

df['year'] = df['timestamp'].dt.year
df['month'] = df['timestamp'].dt.month
df['day'] = df['timestamp'].dt.day
df['hour'] = df['timestamp'].dt.hour
df['weekday'] = df['timestamp'].dt.weekday

2. 滞后特征构建

通过滑动窗口创建滞后特征:

for i in [1, 7, 30]:
    df[f'lag_{i}'] = df['value'].shift(i)

3. 滚动统计特征

计算滚动窗口的统计量:

window_size = 7
for stat in ['mean', 'std', 'min', 'max']:
    df[f'rolling_{stat}_{window_size}'] = df['value'].rolling(window=window_size).agg(stat)

4. 周期性特征

使用正弦和余弦函数编码周期性:

import numpy as np
period = 24  # 小时周期
(df['hour'] / period) * 2 * np.pi

这些技巧可显著提升时间序列模型的预测性能,建议在数据清洗后进行特征工程处理。

推广
广告位招租

讨论

0/2000
美食旅行家
美食旅行家 · 2026-01-08T10:24:58
滞后特征确实很关键,但别忘了处理缺失值,可以用前向填充或插值。
Oscar688
Oscar688 · 2026-01-08T10:24:58
周期性编码用正弦余弦不错,我习惯先标准化再转成周期特征,效果更稳定。
DeepWeb
DeepWeb · 2026-01-08T10:24:58
滚动统计特征别贪多,一般3~7天窗口就够用了,太长容易过拟合。
RedMage
RedMage · 2026-01-08T10:24:58
时间特征提取后记得做哑变量处理,尤其是月份、星期这种分类变量。
HotNinja
HotNinja · 2026-01-08T10:24:58
建议把原始时间戳保留下来,方便后续做交叉特征或异常检测。
Helen228
Helen228 · 2026-01-08T10:24:58
滑动窗口的大小要根据业务场景定,比如零售数据可能需要按周滞后。
Yara968
Yara968 · 2026-01-08T10:24:58
可以尝试用 Prophet 的内置功能提取节假日、趋势等高级特征。
CoolWill
CoolWill · 2026-01-08T10:24:58
别忘了对数值型特征做归一化,尤其是滞后和滚动统计特征容易有量纲问题。
Paul813
Paul813 · 2026-01-08T10:24:58
周期性特征建议同时加入sin和cos,避免在周期边界处出现突变。
George278
George278 · 2026-01-08T10:24:58
特征工程最好分阶段进行,先做基础时间特征,再逐步添加复杂特征。