1.特征工程
2.数据标准化
3.数据集划分
一、特征工程
特征工程是将原始时间数据转化为有意义的特征的过程。从原始数据中筛选出对预测目标有影响的特征。在时间序列数据中,这可能包括历史值、时间戳、周期性特征、外部因素等。通过选择相关特征,可以减少冗余和无关特征对模型训练的干扰。
1.时间特征提取
(1)时间成分:提取年、月、日、星期、小时、分钟、第几天等。
(2)季节性和周期性特征:如季度、是否为周末、节假日。
(3)时间差特征:与前一个/几个时间点的时间间隔。
2.滞后特征 (Lag Features)
创建过去时间点的观测值作为特征,例如:t-1, t-2, t-3,…t-n 时刻的值作为当前时刻的特征。
3.滚动统计特征
移动平均值 (rolling mean)、移动标准差 (rolling std)、移动最大值/最小值、指数加权移动平均 (EWMA)
4. 差分和变换
一阶/二阶差分消除趋势、对数变换稳定方差、Box-Cox变换(对数变换、平方根变换、倒数变换)、多项式回归。
对原始特征进行数学变换,以提取更有用的信息。例如,可以使用sin/cos函数将周期性特征编码成连续空间,以避免边界突变。此外,还可以对连续型特征进行归一化、标准化处理,对离散型特征进行独热编码等。多项式回归通过引入原始特征的高次幂,将线性模型扩展到非线性关系。
5.扩展窗口统计
累计平均值、累计最大值/最小值
二、数据标准化
1数据标准化
将数据按比例缩放,使之落入一个特定的区间(如[-1,1]、[0,1]等),从而消除不同特征之间量纲和量纲范围差异的影响。它是一种线性变换的方法,目的是使得数据的分布更加符合某种特定的分布,如标准正态分布等。
(1)Z得分标准化(Z-score Normalization):也称为标准差标准化,是将数据按其标准差和均值进行标准化,使得数据的均值为0,标准差为1。计算公式为:X’ = (X - μ) / σ,其中μ是数据的均值,σ是数据的标准差。
(2)Min-Max标准化(Min-Max Normalization):是将数据按比例缩放,使之落入一个特定的区间(如[0,1])。计算公式为:X’ = (X - Xmin) / (Xmax - Xmin),其中Xmin和Xmax是数据的最小值和最大值。
(3)Robust标准化,也称为鲁棒标准化,是一种数据预处理技术,它利用数据的中位数和四分位数范围(IQR)进行缩放和中心化。这种方法与传统的StandardScaler(使用均值和标准差)不同,对异常值(outliers)不敏感,因此在数据中存在离群点时更为稳健。
2.数据归一化
将不同范围的值映射到一个共同的范围内(如[0,1]),适用于有界数据。它也是一种线性变换的方法,目的是使得数据的分布更加均匀。
(1)Min-Max归一化(Min-Max Normalization):与数据标准化中的Min-Max标准化方法相同,是将数据按比例缩放,使之落入一个特定的区间(如[0,1])。计算公式为:X’ = (X - Xmin) / (Xmax - Xmin),其中Xmin和Xmax是数据的最小值和最大值。
(2)Logistic归一化(Logistic Normalization):是将数据通过Logistic函数映射到[0,1]区间。计算公式为:X’ = 1 / (1 + e^(-X))。
三、数据集划分(时间序列为主)
分类可以参考这篇文章机器学习数据集划分解释训练集、验证集和测试集
传统方法(不适用于时间序列)随机划分,会破坏时间依赖性,不适合时间序列预测。在时间序列回归预测中,需要注意以下几个方面:
1.时间顺序:由于时间序列数据具有时间顺序性,因此在划分数据集时需要保持时间顺序的一致性。通常将历史数据作为训练集,近期数据作为验证集和测试集。考虑季节性,测试集应包含完整周期。
2.滑动窗口:对于时间序列数据,可以使用滑动窗口技术来构建样本。即选择一个固定的时间窗口长度,将窗口内的数据作为输入特征,窗口后的数据作为预测目标。通过滑动窗口可以生成多个样本用于模型训练。
3.避免未来数据泄露:在划分数据集时,需要确保训练集中不包含测试集或验证集中的未来数据。这可以通过保留最近一段时间的数据作为测试集来实现。
4.时间序列交叉验证:TimeSeriesSplit (sklearn)保持时间顺序的k-fold验证。