基于时间序列数据的特征提取方法
在大模型训练中,时间序列数据的特征提取是关键环节。本文将介绍几种实用的时间序列特征工程方法。
1. 统计特征提取
import pandas as pd
import numpy as np
def extract_statistical_features(df, column):
features = {
'mean': df[column].mean(),
'std': df[column].std(),
'min': df[column].min(),
'max': df[column].max(),
'median': df[column].median(),
'q25': df[column].quantile(0.25),
'q75': df[column].quantile(0.75)
}
return features
2. 时间相关特征
# 提取时间周期特征
def extract_temporal_features(df, date_column):
df[date_column] = pd.to_datetime(df[date_column])
features = {
'year': df[date_column].dt.year,
'month': df[date_column].dt.month,
'day': df[date_column].dt.day,
'weekday': df[date_column].dt.weekday,
'hour': df[date_column].dt.hour
}
return features
3. 滞后特征与滑动窗口统计
# 计算滞后特征
def create_lag_features(df, column, lags=[1,2,3]):
for lag in lags:
df[f'{column}_lag_{lag}'] = df[column].shift(lag)
return df
# 滑动窗口统计
def create_rolling_features(df, column, windows=[3,7,14]):
for window in windows:
df[f'{column}_rolling_mean_{window}'] = df[column].rolling(window=window).mean()
df[f'{column}_rolling_std_{window}'] = df[column].rolling(window=window).std()
return df
这些方法可有效提升时间序列模型的性能,建议在数据清洗后优先尝试。

讨论