BasicTS
BasicTS copied to clipboard
关于所有预测点评价指标的计算方法问题
您好!
关于预测点指标计算方法的问题,您的论文中用的是12个预测点的平均值,但是在之前很多时空预测的相关论文中,用的是对所有预测点进行一次性评价。比如,12个预测时间步,每个时间步为3600个点,对12*3600进行指标计算,不是12组3600个点单独计算指标,再来算平均值。
算平均值的方式,评价指标的数值一般小于一次性计算的方式。
以上是我的理解,不知道对不对。
感谢您的意见,我仔细思考了一下,这两种做法应该是等价的。下面是一些实际的验证:
import torch
from basicts.losses import masked_mae
B = 1000 # 1000个样本
N = 207 # 207条时间序列
L = 12 # 预测未来12个时间步
C = 1 # Channel
data = torch.randn(B, L, N, C)
pred = torch.randn(B, L, N, C)
loss1 = masked_mae(data, pred)
mae_each_horizon = []
for i in range(L):
data_i = data[:, i, :, :]
pred_i = pred[:, i, :, :]
mae_each_horizon.append(masked_mae(data_i, pred_i))
loss2 = sum(mae_each_horizon) / len(mae_each_horizon)
print(loss1)
print(loss2)
tensor(1.1277)
tensor(1.1277)
BasicTS中的做法就是您说的那种,使用12*3600进行指标计算。See here.