三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

SCINet 从入门到精通:11 个主流时间序列数据集实战指南

SCINet 从入门到精通:11 个主流时间序列数据集实战指南

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.txtsolar_AL.txtexchange_rate.txttraffic.txt
  • datasets/PEMS/:存放 PeMS 系列数据集,如PEMS03.npzPEMS04.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.5

3. 金融领域数据集

金融领域的数据集(如 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),仅供参考

← 返回列表