【pytorch】时间序列预测——同时预测多个分位点
部分参考
《Multi-HorizonTimeSeriesForecastingwithTemporalAttentionLearning》
《AMulti-HorizonQuantileRecurrentForecaster》
这两篇⽂章考虑的是多步预测的情形,多步预测在有外部协变量且未来输⼊已知的情况下效果好⼀点,如果只有未知变量的历史值,还是考
虑做单步预测吧!否则只能通过迭代地执⾏单步预测(导致误差累计)或者直接预测步之后的值(误差⼤),效果不好,意义不⼤!
单变量单步预测的分位点损失
单变量多步预测的分位点损失
多变量多步预测的分位点损失
结果可视化
h
模型
该模型可实现多变量单步的多分位点预测
importtorch
onalasF
classModel():
def__init__(lf,n_val,window,hidRNN,quantiles=[0.5]):
super(Model,lf).__init__()
_cuda=True
lf.P=window#输⼊窗⼝⼤⼩
lf.m=n_val#列数,变量数
=hidRNN
les=(quantiles)
=(lf.m,)
=(,lf.m*len(quantiles))
defforward(lf,x):
x1=e(1,0,2).contiguous()#x1:[window,batch,n_val]
_,h=(x1)#h:[1,batch,hidRNN]
h=e(h,0)#h:[batch,hidRNN]
res=(h)#res:[batch,n_val*n_quantile]
res=(-1,len(les),lf.m)
returnres
defMQLoss(lf,pred,true):
quantiles=eze(1).expand(len(les),lf.m)
true=(-1,1,lf.m).expand()
tau=(pred,true).type(ensor)-quantiles
loss=(pred-true).sum()
returnloss
本文发布于:2022-12-06 10:21:53,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/52380.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |