Giter Club home page Giter Club logo

ddgcrn's Introduction

[Pattern Recognition] Decomposition Dynamic Graph Conolutional Recurrent Network for Traffic Forecasting

This is a PyTorch implementation of Decomposition Dynamic Graph Conolutional Recurrent Network for Traffic Forecasting, as described in our paper: Weng, Wenchao, Fan Jin ,Wu Huifeng and Hu Yujie ,Tian Hao, Zhu Fu, Wu Jia, A Decomposition Dynamic Graph Convolutional Recurrent Network for Traffic Forecasting,Pattern Recognition 2023.

PWC PWC PWC PWC PWC PWC

Update

(2024/3/22)

  • Added a hyperparameter days_per_week for easy adjustment of the index quantity of time embeddings.

  • Added instructions for using the hyperparameters days_per_week and steps_per_day.

(2024/1/29)
  • Optimized the data processing part of the model by changing the normalization process from using the mean and variance of the entire dataset to using the mean and variance of the training set.

  • Improved the normalization operation when reading data, no longer normalizing the prediction target to avoid the abnormal MAPE issue on the PEMS03 dataset.

  • Enhanced the dataset splitting operation, changing from initially dividing the dataset and then segmenting samples to first segmenting samples and then dividing the dataset. This has increased the number of training and testing samples.

Table of Contents

  • configs: training Configs and model configs for each dataset

  • lib: contains self-defined modules for our work, such as data loading, data pre-process, normalization, and evaluate metrics.

  • model: implementation of our model

  • pre-trained: pre-trained model parameters

Usage Instructions for Hyperparameters

days_per_week: The time intervals for data collection vary across different datasets. Adjust this hyperparameter based on the time intervals of the dataset being used. For example, in the PEMS04 dataset with a time interval of 5 minutes, set this parameter to 14400/5=288. Similarly, in the NYC-Bike dataset with a time interval of 30 minutes, set this parameter to 14400/30=48.

steps_per_day: The data collection scope varies across different datasets. For instance, PEMS04 collects data from Monday to Sunday, so set this parameter to 7. Conversely, for the PEMS07(M) dataset, data is collected only from Monday to Friday, so set this parameter to 5.

Data Preparation

For convenience, we package these datasets used in our model in Google Drive.

Unzip the downloaded dataset files to the main file directory, the same directory as run.py.

Requirements

Python 3.6.5, Pytorch 1.9.0, Numpy 1.16.3, argparse and configparser

Model Training

python run.py --dataset {DATASET_NAME} --mode {MODE_NAME}

Replace {DATASET_NAME} with one of PEMSD3, PEMSD4, PEMSD7, PEMSD8, PEMSD7(L), PEMSD7(M)

such as python run.py --datasets PEMSD4

There are two options for {MODE_NAME} : train and test

Selecting train will retrain the model and save the trained model parameters and records in the experiment folder.

With test selected, run.py will import the trained model parameters from {DATASET_NAME}.pth in the pre-trained folder.

Cite

If you find the paper useful, please cite as following:

@article{weng2023decomposition,
  title={A Decomposition Dynamic Graph Convolutional Recurrent Network for Traffic Forecasting},
  author={Weng, Wenchao and Fan, Jin and Wu, Huifeng and Hu, Yujie and Tian, Hao and Zhu, Fu and Wu, Jia},
  journal={Pattern Recognition},
  pages={109670},
  year={2023},
  publisher={Elsevier}
}

More Related Works

ddgcrn's People

Contributors

wengwenchao123 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.