zezhishao / BasicTS

A Standard and Fair Time Series Forecasting Benchmark and Toolkit.
Apache License 2.0
469 stars 85 forks source link

关于数据输入和输出特征个数的问题? #124

Closed gaolei30 closed 1 month ago

gaolei30 commented 3 months ago

作者您好,想请教关于数据集配置中 GWnet模型下面PEMS04文件的配置中包含以下两个参数 CFG.MODEL.FORWARD_FEATURES = [0, 1] CFG.MODEL.TARGET_FEATURES = [0] 其中PPEMS04数据集处理的时候生成的数据形状为最后的特征维度为1,但是使用GWnet模型的输入特征维度为2,为什么数据集处理后为1,但是CFG.MODEL.FORWARD_FEATURES = [0, 1]设置为前两个维度的特征,就可以输入2个特征维度的数据。该参数作用于哪部分? 希望您能解答我的困惑!!

zezhishao commented 3 months ago

一般来说,一个未经过采样和预处理的数据集可以表示为[N, L, 1]的矩阵。其中N是时间序列的数量,L 是总长度,1 值时间序列记录的值。一般来说我们的目标就是预测这个 1。 但许多模型在预测的时候,需要使用额外的日期特征,例如 time in day、day in week、day in month、day in year 等等。所以常用的设置是通过数据预处理把这些 feature 加进去。例如,假如把上面四个 feature 全部加入,那么预处理之后的完整数据是[N, L, 5]。其中,第一维是我们想要预测的内容,后面的几个维度都是辅助特征。 FORWARD_FEATURES=[0, 1]代表选择前两个维度,即[value, time in day]这两个特征。 TARGET_FEATURES=[0]代表着目标是预测第一维特征(会根据这个取数据,计算 loss)。 具体的使用位置在:https://github.com/zezhishao/BasicTS/blob/master/basicts/runners/runner_zoo/simple_tsf_runner.py

zezhishao commented 3 months ago

假如 BasicTS 对您有用,别忘了点个 stars~

有任何问题欢迎继续留言,我看到了会尽快解答。