thuml / iTransformer

Official implementation for "iTransformer: Inverted Transformers Are Effective for Time Series Forecasting" (ICLR 2024 Spotlight), https://openreview.net/forum?id=JePfAI8fah
https://arxiv.org/abs/2310.06625
MIT License
1.25k stars 218 forks source link

Abnormal metrics when using inverse=True on PEMS08 dataset #111

Closed Reborn14 closed 2 weeks ago

Reborn14 commented 2 months ago

Hello,

I'm encountering some issues when running iTransformer on the PEMS08 dataset. Here are the details:

Problems observed:

  1. The calculated metrics are severely off from the expected range.
  2. During training, the RMSE stays around 30 and doesn't decrease further.

Questions:

  1. Is it normal for the RMSE to stay around 30 during training with these settings?
  2. Could setting inverse=True be causing these abnormal results?
  3. Are there any known issues or considerations when using inverse=True with the PEMS datasets?
  4. Do you have any suggestions for troubleshooting this problem or adjusting the configuration?

Any insights or guidance would be greatly appreciated. Thank you!

您好,

我在使用iTransformer模型处理PEMS08数据集时遇到了一些问题。具体情况如下:

观察到的问题:

  1. 计算得到的指标严重偏离预期范围。
  2. 在训练过程中,RMSE值始终徘徊在30左右,无法进一步下降。

我的疑问:

  1. 在这些设置下,训练过程中RMSE保持在30左右是否属于正常情况?
  2. 设置inverse=True是否可能导致这些异常结果?
  3. 在PEMS数据集上使用inverse=True时,是否有任何已知问题或需要特别注意的事项?
  4. 您有什么建议可以帮助排查这个问题或调整配置吗?

非常感谢您的任何见解或指导。谢谢!

image

image

bigdata0 commented 2 months ago

inverse=True会导致预测出的数据反转回原始数据的数据分布,训练之前已经把数据进行了Z-score标准化,正常情况下统一计算指标的时候也是使用标准化后的数据进行计算的,所以反转后会和论文中有很大偏差,你可以修改一下代码,让绘图的时候inverse=True,计算的时候使用反转之前的标准化数据计算这些衡量指标。至于rmse稳定在30左右的情况,也许因为预测步长太小,可以观察一下数据,预测步长是12的情况下,趋势性的变化不大,周期比较长,整体是比较平稳的,可能训练之后模型拟合结果也不会有太大变化,尝试多看一些数据集的情况呢?我觉得可能没什么问题,不要单看预测12的情况,可能只能达到这个rmse程度的结果,也可以尝试一下time-series library的其他模型去加载PEMS数据集去尝试预测一下,data_loader可能需要改一下,那个项目里面之前看好像没有PEMS数据集的加载方式,你把作者的这个data_loader去copy到那边试试看那边的模型。

Reborn14 commented 1 month ago

inverse=True会导致预测出的数据反转回原始数据的数据分布,训练之前已经把数据进行了Z-score标准化,正常情况下统一计算指标的时候也是使用标准化后的数据进行计算的,所以反转后会和论文中有很大偏差,你可以修改一下代码,让绘图的时候inverse=True,计算的时候使用反转之前的标准化数据计算这些衡量指标。至于rmse稳定在30左右的情况,也许因为预测步长太小,可以观察一下数据,预测步长是12的情况下,趋势性的变化不大,周期比较长,整体是比较平稳的,可能训练之后模型拟合结果也不会有太大变化,尝试多看一些数据集的情况呢?我觉得可能没什么问题,不要单看预测12的情况,可能只能达到这个rmse程度的结果,也可以尝试一下time-series library的其他模型去加载PEMS数据集去尝试预测一下,data_loader可能需要改一下,那个项目里面之前看好像没有PEMS数据集的加载方式,你把作者的这个data_loader去copy到那边试试看那边的模型。

好的,十分感谢。因为之前看的比较多的短时预测 Pems 之类的交通数据集都是反标准化计算RMSE的,所以也想着反标准化后查看各个指标