Skip to content

Yaohui-Huang/EasyTS

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EasyTS: The Express Lane to Long Time Series Forecasting

!!! This Repo under continuous construction !!!

We introduce EasyTS, a comprehensive toolkit engineered to streamline the complex procedures of data collection, analysis, and model creation.

Overview

The overall architecture of this toolkit is illustrated in Figure 1. EasyTS is structured into three progressively advanced lev- els. Initially, it offers a one-stop solution for datasets, allow- ing users to easily download and import richly-scenarioed time series datasets with a single click through dataloader. Subsequently, the toolkit embeds a variety of preprocessing and convenient visualization analysis tools to aid researchers in feature extraction and analysis. Building on this, an intu- itive model building and validation interface is implemented for rapid model development and assessment. In this stage, EasyTS provides diverse evaluation metrics and benchmark models to ensure comprehensive and in-depth model evalu- ation.


Figure 1: An overview of EasyTS

Rich One-stop Datasets Service

EasyTS currently encompasses multiple datasets from six different domains around the world, with specific details provided in Figure 2. EasyTS introduces four novel opensource datasets related to electrical energy: FOOD, MANU, PHAR, and OFFICE (Red indicates).


Figure 2: Datasets included in EasyTS

For detailed information about the dataset, please refer to the readme file in the "dataset" folder.

Convenient Data Visualization Component

EasyTS extends a versatile array of analytical tools, elegantly illustrated in Figure 3.


Figure 3: Various analytical tools provided by EasyTS

Convenient Model Verification Interface

Based on the two aspects mentioned above, scholars can swiftly design their own models within the toolkit's specified modules. EasyTS provides diverse time-series evaluation metrics, such as MSE, MAE, DDTW, CORR, RMSE, to objectively assess the sophistication of the models, with the scoring results displayed in Figure 4.


Figure 4: Diverse time-series evaluation metrics

Usage

  1. Dataset downloaded separately

    Invoke the 'download' method in the corresponding data class(Are placed in the 'dataset' directory), and provide the download directory and the name of the dataset to be downloaded.

    Dataset_Electricity.download(DATASET_PATH, 'FOOD1')
  2. Data analysis tools

    All data analysis functions are located in the 'analytical_tools.py' file under the 'Tools' directory.

    file_path = "../Electricity/FOOD1.csv"
    draw_line_with_slider(file_path)
  3. Train and validate the model

    a. Place your personal model files in the 'models' folder and import the personal model module in 'score.py'.

    b. Modify the model name in 'main.py', as well as the dataset type and the corresponding sub-dataset name you wish to use.

    c. Simply run the 'main.py' method.

    # score.py:
        ## If adding a custom model, please import it in the file
        from models import DLinear
    
    # main.py:
        ## Define the subset of dataset class to use here:
        Electricity_SubDataset = ["FOOD1.csv", "FOOD2.csv"]
    
        ## Define the dataset class to use here:
        parser.add_argument('--dataset_class', type=list, default=['Electricity'], help='Data class for evaluation')
    
        ## Define the model to be used here:
        parser.add_argument('--model', type=str, default='DLinear', help='model name')
    
    python main.py

Acknowledgement

We appreciate the following github repos a lot for their valuable code base or datasets:

https://github.com/cure-lab/LTSF-Linear

https://github.com/hsy23/KDD23_DynEformer

https://github.com/DAMO-DI-ML/ICML2022-FEDformer

https://github.com/thuml/Time-Series-Library

https://github.com/alipay/Pyraformer

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%