【pytorch】时间序列预测——同时预测多个分位点

更新时间:2023-06-24 00:43:19 阅读: 评论:0

【pytorch】时间序列预测——同时预测多个分位点自信的故事
部分参考
《Multi-Horizon Time Series Forecasting with Temporal Attention Learning》
经典黑白电影
《A Multi-Horizon Quantile Recurrent Forecaster》
这两篇⽂章考虑的是多步预测的情形,多步预测在有外部协变量且未来输⼊已知的情况下效果好⼀点,如果只有未知变量的历史值,还是考
h
虑做单步预测吧!否则只能通过迭代地执⾏单步预测(导致误差累计)或者直接预测步之后的值(误差⼤),效果不好,意义不⼤!
单变量单步预测的分位点损失
单变量多步预测的分位点损失
多变量多步预测的分位点损失
dme模型
该模型可实现多变量单步的多分位点预测
import torch
as nn
functional as F
class Model(nn.Module):
def__init__(lf, n_val, window, hidRNN, quantiles =[0.5]):
super(Model, lf).__init__()
lf.u_cuda =True
lf.P = window  # 输⼊窗⼝⼤⼩
lf.m = n_val  # 列数,变量数
补发英文lf.hidR = hidRNN
bubly
lf.quantiles = sor(quantiles)
lf.GRU = nn.GRU(lf.m, lf.hidR)
ticklingtv
lf.linear = nn.Linear(lf.hidR, lf.m *len(quantiles))
def forward(lf, x):
x1 = x.permute(1,0,2).contiguous()# x1: [window, batch, n_val]
_, h = lf.GRU(x1)# h: [1, batch, hidRNN]
h = torch.squeeze(h,0)# h: [batch, hidRNN]
res =  lf.linear(h)# res: [batch, n_val * n_quantile]
res = res.view(-1,len(lf.quantiles), lf.m)
lacross
return res
redemptionperiod
def MQLoss(lf, pred, true):
quantiles = lf.quantiles.unsqueeze(1).expand(len(lf.quantiles), lf.m)        true = true.view(-1,1, lf.m).expand(pred.shape)
tau = (pred, true).type(torch.FloatTensor)- quantiles
loss = tau.mul(pred - true).sum()christmas lights
return loss
性感英文

本文发布于:2023-06-24 00:43:19,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1025002.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:预测   变量   位点   效果   损失   误差   自信
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图