时间序列数据特征提取与建模实践
在大模型训练中,时间序列数据的特征工程是决定模型性能的关键环节。本文将分享一套可复现的时间序列特征提取方法。
数据预处理
首先加载时间序列数据并进行基础清洗:
import pandas as pd
import numpy as np
df = pd.read_csv('timeseries_data.csv')
df['timestamp'] = pd.to_datetime(df['timestamp'])
df.set_index('timestamp', inplace=True)
# 处理缺失值
df.fillna(method='forward', inplace=True)
核心特征提取
基于时间序列特性,提取以下特征:
- 统计特征:
# 滑动窗口统计
for window in [5, 10, 20]:
df[f'rolling_mean_{window}'] = df['value'].rolling(window=window).mean()
df[f'rolling_std_{window}'] = df['value'].rolling(window=window).std()
- 时间特征:
# 提取时间周期性特征
df['hour'] = df.index.hour
df['day_of_week'] = df.index.dayofweek
df['is_weekend'] = df['day_of_week'].isin([5, 6]).astype(int)
- 趋势特征:
# 线性趋势
from sklearn.linear_model import LinearRegression
x = np.array(range(len(df))).reshape(-1, 1)
y = df['value'].values
model = LinearRegression().fit(x, y)
df['trend_slope'] = model.coef_[0]
特征工程最佳实践
- 采用滑动窗口提取动态特征
- 结合业务理解设计领域特征
- 避免数据泄露,确保时间顺序
该方法已成功应用于多个大模型训练项目,特征质量显著提升。

讨论