在分割训练和测试数据之前或之后对时间序列数据进行归一化?

时间:2020-07-04 19:09:01

标签: time-series

我对时间序列数据使用分类模型,在将数据分为训练和测试之前,我对数据进行了归一化。现在,我知道应该分别处理训练数据和测试数据,以防止数据泄漏。在这里标准化步骤的正确顺序是什么?在借助滑动窗口拆分数据后,是否应该分别应用步骤1,2,3进行训练和测试?我在这里使用滑动窗口将每个小时(测试)与其之前的24小时数据(火车)进行比较。这是我当前在管道中使用的顺序。

  1. 移动平均值(均值)
  2. 每小时重新采样
  3. 标准化
  4. 使用滑动窗口(长度为24小时(火车),每1小时滑动一次(测试))将数据拆分为火车并进行测试
  5. 使用火车数据拟合模型
  6. 使用测试数据进行预测

1 个答案:

答案 0 :(得分:1)

第1步和第2步可以安全完成,您只需考虑移动平均值只能使用过去的值:X'i = mean(Xi, Xi-1, Xi-2, ..., Xi-n)

但是,在第3步中,如果使用 minmax缩放器,则归一化/标准化参数,例如 max min 均值标准差(如果您使用的是标准化),则应根据训练数据进行计算,并将其应用于整个数据集,这样您的管道就可以像这样

  1. 移动平均值(仅使用过去的值)

  2. 每小时重新采样

  3. 将数据拆分为训练和测试。

  4. 从火车数据(平均值和标准差)中获取标准化参数。

  5. 使用4中计算出的参数标准化整个数据集(训练和测试)。

  6. 使用火车数据拟合模型

  7. 使用测试数据进行预测