GestaltCogTeam / BasicTS

A Fair and Scalable Time Series Forecasting Benchmark and Toolkit.
Apache License 2.0
519 stars 90 forks source link

复现代码中的参数设置问题 #97

Closed wml161518 closed 3 weeks ago

wml161518 commented 9 months ago

作者你好,我是刚刚接触时间序列这个研究方向,对于这个基准工具箱有一些问题,我在没有改参数设置的情况下,跑起来的效果却和感觉与别人论文中的效果有比较大的差异,所以想问问原始参数是按照原始论文进行设置的么,例如DLinear模型使用weather数据集 训练50epoch结果是这样:2023-12-10 15:43:54,752 - easytorch-training - INFO - Evaluate best model on test data for horizon 96, Test MAE: 0.267562, Test RMSE: 0.486204, Test MAPE: 1.876085, Test WAPE: 0.440493, Test MSE: 0.236394 原文中werther数据集96对应的MSE是0.176;MAE是0.237 不知道如何配置来达到论文中的效果,作者大大可以给个示例么 期待你的回复

zezhishao commented 9 months ago

BasicTS中的Evaluate best model on test data for horizon 96代表的是在96个时间片处的损失。而LTSF领域相关工作是预测96个时间片,在这所有的96个时间片上的平均损失。

因此,假如你想要对比预测长度为96时候的结果,你应该先把CFG.DATASET_OUTPUT_LEN设置为96,然后查看整个Test Evaluation的结果,即log中长得像这样的行2023-12-10 15:46:42,249 - easytorch-training - INFO - Result <test>: [test_time: 2.93 (s), test_MAE: 3.166884, test_RMSE: 6.541209, test_MAPE: 0.094466, test_WAPE: 0.054826, test_MSE: 42.787418]。这一行中的就是96个时间片上平均结果。

另外,LTSF的相关研究通常只在归一化后的数值上计算指标。虽然这一设置不太合理,但假如你想要按照这个设置来和他们进行对比,你还需要将CFG.RESCALE设置成False

wml161518 commented 9 months ago

感谢作者大大的回答,那CFG.DATASET_INPUT_LEN需要对应修改么

zezhishao commented 9 months ago

可以先按照目前仓库中的值复现,差距显著的话就得自己再调整一下了。长序列预测这个领域的输入长度很乱。