FreqCycle
November 10, 2025 ยท View on GitHub
Model Implementation
We propose FreqCycle, a novel framework integrating: (i) a Filter-Enhanced Cycle Forecasting (FECF) module to extract low-frequency features by explicitly learning shared periodic patterns in the time domain, and (ii) a Segmented Frequency-domain Pattern Learning (SFPL) module to enhance mid to high frequency energy proportion via learnable filters and adaptive weighting. The core implementation code of FreqCycle is available at:
models/FreqCycle.py
For the FECF part, To identify the relative position of each sample within the recurrent cycles, we need to generate cycle index (i.e., t mod W ) additionally for each data sample. The code for this part is available at:
data_provider/data_loader.py
For the SFPL part, The specific implementation code of SFPL :
class Time_seg(nn.Module):
We have two segmentation strategies for x: Sliding window-based segmentation Uniform segmentation into 2**s parts (where s is a given input)
Getting Started
Environment Requirements
To get started, ensure you have Conda installed on your system and follow these steps to set up the environment:
conda create -n FreqCycle python=3.10
conda activate FreqCycle
pip install -r requirements.txt
Data Preparation
All the datasets needed for FreqCycle can be obtained from previous works such as Autoformer and SCINet.
Create a separate folder named ./data and place all the CSV files in this directory.
Training Example
You can easily reproduce the results from the paper by running the provided script command. For instance:
bash scripts/FreqCycle/etth1.sh
bash scripts/MFreqCycle/etth2.sh