nnzhan / Graph-WaveNet

graph wavenet
MIT License
631 stars 201 forks source link

table2中预测15mins,30mins 和60mins的值,其output length 一直等于12就可以吗? #24

Closed yufann closed 2 years ago

yufann commented 3 years ago

你好,想请教一下各位大神,table2中,是不是 将output length =12 一次性输出整个12个值,然后把第3,6,12处的值填进table2中就可以了? 还是output length =12 只是60mins时刻,我们需要将output length 分别设为 3 和 6 才能得到表格中的 15mins的值和30mins的值? 英语怕说不清楚, 写的中文。 希望能解答我的疑惑,万分谢谢!!!

HQ-LV commented 6 months ago

您好,我也有这个疑问,请问您解决了吗。我认为似乎是您说的第一种做法。

test.py中数据加载和训练时一样,都是用的util.load_dataset()方法。 test时计算metrics时,似乎是在12个时间戳上分别计算metrics的,那么在Table2中,是否就是将第3,6,12处的metrics填进去就行呢?

```
amae = []
amape = []
armse = []
for i in range(12):
    pred = scaler.inverse_transform(yhat[:,:,i])
    real = realy[:,:,i]
    metrics = util.metric(pred,real)
    log = 'Evaluate best model on test data for horizon {:d}, Test MAE: {:.4f}, Test MAPE: {:.4f}, Test RMSE: {:.4f}'
    print(log.format(i+1, metrics[0], metrics[1], metrics[2]))
    amae.append(metrics[0])
    amape.append(metrics[1])
    armse.append(metrics[2])

log = 'On average over 12 horizons, Test MAE: {:.4f}, Test MAPE: {:.4f}, Test RMSE: {:.4f}'
print(log.format(np.mean(amae),np.mean(amape),np.mean(armse)))