时间序列特征提取中的周期性分析技巧
在大模型训练中,时间序列数据的周期性分析是特征工程的关键环节。本文将分享几种实用的周期性检测与特征提取方法。
周期性检测方法
1. 自相关函数分析
import pandas as pd
import numpy as np
from statsmodels.tsa.stattools import acf
# 计算自相关函数
lag_acf = acf(time_series, nlags=50)
# 找到显著的周期点
significant_lags = np.where(lag_acf > 0.5)[0]
2. FFT频谱分析
from scipy.fft import fft
import matplotlib.pyplot as plt
# 计算FFT
fft_values = fft(time_series)
frequencies = np.fft.fftfreq(len(time_series), d=1)
# 找到主要频率成分
main_freq_idx = np.argsort(np.abs(fft_values))[-5:]
周期性特征提取
周期性时间特征:
- 日期周期性(年、月、日、小时、分钟)
- 星期周期性(星期几)
# 示例:提取周期性时间特征
from datetime import datetime
def extract_cyclical_features(df):
df['hour_sin'] = np.sin(2 * np.pi * df['hour'] / 24)
df['hour_cos'] = np.cos(2 * np.pi * df['hour'] / 24)
df['month_sin'] = np.sin(2 * np.pi * df['month'] / 12)
df['month_cos'] = np.cos(2 * np.pi * df['month'] / 12)
return df
这些方法可有效提升大模型对时间序列规律的学习能力。

讨论