时间序列Long-term Forecasting标准数据集和benchmark

文章介绍了在NeurIPS2022上发布的SCINet,一种结合样本卷积和交互的时间序列模型,研究了不同时间跨度的预测,如短期、长期和多元预测。结果表明SCINet在多项预测任务中表现出色,尤其是在单变量预测中,且使用置换熵证实了模型提高了序列的可预测性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据集

Electricity

321位顾客从2012年到2014年的每小时用电量

下载地址:UCI-ElectricityLoadDiagrams20112014 Data Set (压缩包大小为249M,解压后为678M)

ETT

2016年7月到2018年7月电力变压器来自2个站点)的数据,包括负载、油温。ETTm1/ETTm2每隔15分钟记录一次,ETTm1/ETTm2每隔一小时记录一次。

下载地址:zhouhaoyi / ETDataset (文件大小24M)

ILI

美国疾病控制和预防中心从2002年到2021年每周报告的一周内流感样疾病患者与总患者的比率。

Traffic

记录了2015年1月至2016年12月,旧金山湾区高速公路上的 862 个传感器测量的每小时道路占用率。

Weather

2020年马普生物地球化学研究所气象站每10分钟采集21个气象指标的气象时间序列。

下载地址:mpi_roof_2020a.zip (2020年1-6月);mpi_roof_2020b.zip (2020年7-12月)

Credit to Non-stationary Transformers: Exploring the Stationarity in Time Series Forecasting [Neurips 2022]

Benchmark Result

SCINet

SCINet: Time Series Modeling and Forecasting with Sample Convolution and Interaction 这篇文章发表在Neurips2022,代码已开源 。 这里初步地汇集一下文章中的结果:

短期时间序列预测,tau代表不同的预测间隔,短期预测考虑3,6,12,24步的向前预测。

一些观察:

  • 使用正常卷积的TCN效果比使用因果卷积的TCN好,可能是因为纳入了更多信息,所以预测效果更好一点
  • 除了加粗本文提出的模型效果最棒外,作者还使用蓝色下划线highlight了第二好的模型,以强调传统LSTM在短期时间序列的预测上比Transformer-based模型更好。

长期时间序列预测,此时考虑96,192,336,720步的前向预测。

文章在长期时间序列预测对比的benchmark上没有用LSTM/RNN等经典模型,只对比了Transformer-based的模型,其实作为读者我也很好奇LSTM/RNN在长期时间序列预测上的表现。

多元时间序列预测,可以看到SCINet和Autoformer仍然领先性能榜。与LSTM相比,降低了接近一半的MSE/MAE。

单变量时间序列预测,仍然是SCINet和Autoformer效果拔群。

值得一提的是文章使用了置换熵(Permutation Entropy, PE),来衡量原始序列和经过表达提取后的序列的可预测性。PE越低的序列越容易预测。可以看到,经过文章提出的模型进行变换后,序列的可预测性确实有了提升,PE有显著下降。

其他汇总资源

CUHK CURE Lab的一系列开源资源

  1. Time Series Papers Collections (from ML Top Conference)
  2. XXFormer在时序上的一个汇总库 (可以作为入门仓库跑一跑)
### MICN 模型概述 MICN(Multi-scale Local and Global Context Modeling for Long-term Series Forecasting)是一种专门设计用于长时间序列预测的深度学习框架[^1]。该模型通过结合多尺度特征提取以及局部全局上下文建模的能力,显著提升了对于复杂时间序列数据的预测性能。 #### 多尺度特征提取 为了捕捉不同时间粒度下的模式变化,MICN 利用了卷积神经网络 (CNN) 的层次结构来实现多尺度特征提取。具体而言,它采用多个并行的一维卷积层,每层对应不同的感受野大小,从而能够捕获短时波动与长期趋势之间的关系。 ```python import torch.nn as nn class MultiScaleConv(nn.Module): def __init__(self, input_channels=1, output_channels=[8, 16], kernel_sizes=[3, 7]): super(MultiScaleConv, self).__init__() self.convs = nn.ModuleList([ nn.Conv1d(input_channels, out_ch, k_size, padding=k_size//2) for out_ch, k_size in zip(output_channels, kernel_sizes) ]) def forward(self, x): outputs = [conv(x) for conv in self.convs] return torch.cat(outputs, dim=1) ``` 上述代码展示了如何构建一个多尺度一维卷积模块,其中 `kernel_sizes` 参数控制着各个分支的感受野范围。 #### 局部与全局上下文建模 除了关注单一时序片段内的特性外,MICN 还引入了一种机制用来融合更广泛的背景信息——即所谓的 **global context**。这种策略允许当前时刻的状态不仅依赖于最近的历史记录,还可以受到远距离节点的影响。为此,作者采用了自注意力机制(Self-Attention Mechanism),其核心思想在于计算任意两个位置间的重要性权重,并据此调整输入表示形式。 另一方面,在处理局部区域方面,则继续沿用传统的循环单元(如GRU或LSTM),它们擅长描述连续帧间的动态演变过程。 ```python import torch from torch import Tensor from typing import Optional def scaled_dot_product_attention(query: Tensor, key: Tensor, value: Tensor, mask: Optional[Tensor]=None) -> Tuple[Tensor]: d_k = query.size(-1) scores = torch.matmul(query, key.transpose(-2,-1)) / math.sqrt(d_k) if mask is not None: scores += mask * -1e9 attention_weights = F.softmax(scores,dim=-1) weighted_sum = torch.matmul(attention_weights,value) return weighted_sum, attention_weights ``` 此函数实现了标准缩放点乘法注意机制的核心部分,它是构成整个架构中不可或缺的一个组件。 ### 总结 综上所述,MICN 提供了一个强大的解决方案,适用于那些具有高度非线性跨时段关联性的场景分析需求。通过对多种时空维度上的交互作用进行全面刻画,最终达到了提高预报精度的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值