SCINet 从入门到精通:11 个主流时间序列数据集实战指南
【免费下载链接】SCINetThe GitHub repository for the paper: “Time Series is a Special Sequence: Forecasting with Sample Convolution and Interaction“. (NeurIPS 2022)项目地址: https://gitcode.com/gh_mirrors/sc/SCINet
SCINet 是一个基于论文《Time Series is a Special Sequence: Forecasting with Sample Convolution and Interaction》(NeurIPS 2022) 实现的时间序列预测模型,支持电力、能源、金融和交通等多个领域的 11 个主流时间序列数据集,能够帮助用户轻松开展时间序列预测任务。
一、11 个主流时间序列数据集概览 📊
SCINet 支持的 11 个主流时间序列数据集涵盖了不同领域,具体如下:
1. 电力领域
- Electricity Transformer Temperature (ETT) 系列:包括 ETTh1、ETTh2 和 ETTm1 数据集,是时间序列预测领域常用的基准数据集。
- PeMS 系列:包含 PEMS03、PEMS04、PEMS07 和 PEMS08 数据集,主要用于交通流量预测。
2. 能源领域
- Solar-Energy 数据集:记录太阳能相关数据,可用于太阳能发电量预测等任务。
- Electricity 数据集:包含电力消耗等相关数据,是能源领域时间序列预测的重要数据来源。
3. 金融领域
- Exchange Rate 数据集:记录汇率相关数据,可用于汇率预测等金融时间序列任务。
4. 交通领域
- Traffic 数据集:包含交通流量等相关数据,可用于交通状况预测等应用。
二、数据集获取与准备 ⚙️
1. 数据集下载
所有数据集可以通过 这里 下载。若要一次性准备所有数据集,只需运行项目中的prepare_data.sh脚本,该脚本会创建datasets目录并下载相关数据。
2. 数据集目录结构
下载并准备好数据集后,项目的datasets目录结构如下(部分示例):
datasets/ETT-data/:存放 ETT 系列数据集datasets/financial/:存放金融领域相关数据集,如electricity.txt、solar_AL.txt、exchange_rate.txt、traffic.txt等datasets/PEMS/:存放 PeMS 系列数据集,如PEMS03.npz、PEMS04.npz等
三、针对不同数据集的实战指南 🚀
1. ETT 数据集
ETT 数据集是电力变压器温度相关的时间序列数据集,SCINet 针对该数据集提供了专门的运行脚本run_ETTh.py。在运行时,可通过--data参数指定具体的子数据集(ETTh1、ETTh2 或 ETTm1),通过--root_path参数指定数据文件的根路径。
2. PeMS 数据集
PeMS 数据集是交通流量相关的数据集,使用run_pems.py脚本进行训练和预测。通过--dataset参数选择具体的 PeMS 子数据集(如 PEMS03、PEMS04、PEMS07、PEMS08)。例如,运行以下命令可对 PEMS08 数据集进行训练:
python run_pems.py --dataset PEMS08 --hidden-size 1 --dropout 0.5 --model_name pems08_h1_dp0.53. 金融领域数据集
金融领域的数据集(如 electricity、solar_AL、exchange_rate、traffic)可通过run_financial.py脚本处理。使用--dataset_name参数指定具体的数据集名称,同时可根据需求设置窗口大小、预测 horizon 等参数。以 exchange_rate 数据集为例,预测 horizon 为 3 时的命令如下:
python run_financial.py --dataset_name exchange_rate --window_size 168 --horizon 3 --hidden-size 0.125 --lastWeight 0.5 --stacks 1 --levels 3 --lr 5e-3 --dropout 0.5 --batch_size 4 --model_name ex_I168_o3_lr5e-3_bs4_dp0.5_h0.125_s1l3_w0.5 --num_decoder_layer 2 --epochs 150四、提升模型性能的技巧 ✨
1. 使用 RevIN 处理分布偏移问题
RevIN(Reversible Instance Normalization)是一种轻量级的归一化方法,专门用于处理时间序列预测中的分布偏移问题。在 SCINet 中,只需在命令行中添加--RIN True即可启用 RevIN,它能显著提升模型在 ETT 等数据集上的性能。更多关于 RevIN 的信息可参考 docs/RevIN.md。
2. 调整模型参数
针对不同的数据集,合理调整模型参数(如隐藏层大小、 dropout 率、堆叠数、层数等)可以有效提升预测性能。例如,在处理 Electricity 数据集时,设置合适的--groups参数有助于模型更好地捕捉数据特征。
五、总结 📝
SCINet 作为一款强大的时间序列预测模型,支持 11 个主流时间序列数据集,涵盖电力、能源、金融和交通等多个领域。通过本文介绍的数据集概览、获取与准备方法、实战指南以及性能提升技巧,相信新手和普通用户能够快速上手 SCINet,开展时间序列预测相关的研究和应用。赶紧行动起来,体验 SCINet 在不同数据集上的出色表现吧!
【免费下载链接】SCINetThe GitHub repository for the paper: “Time Series is a Special Sequence: Forecasting with Sample Convolution and Interaction“. (NeurIPS 2022)项目地址: https://gitcode.com/gh_mirrors/sc/SCINet
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考