Skip to content

Repository files navigation

NASDiff

NASDiff: Noise-Aware Diffusion With Short-Trajectory Learning for Consistent Time Series Imputation.

Method Overview

Multi-scale Frequency Decomposition

Multi-scale frequency decomposition in NASDiff

NASDiff first partitions the masked time series into multiple frequency sub-bands and fuses them into low-frequency, overlapping, and high-frequency representations. This multi-scale construction mitigates padding-induced distortion while preserving the fine-grained variations required for consistent reconstruction.

Low-Frequency-Oriented Diffusion and Short-Trajectory Learning

Low-frequency-oriented diffusion and short-trajectory learning in NASDiff

The diffusion process is restricted to the low-frequency representation, decoupling diffusion-added noise from intrinsic high-frequency variations. The reverse process is then learned on shortened, non-consecutive trajectories under an implicit formulation, reducing the number of sampling steps; the preserved high-frequency and overlapping representations are finally reintegrated to produce the imputed result.

Environment

Python 3.10 or 3.11 is recommended.

pip install -r requirements.txt

Quick Start

Run a short smoke test first. This verifies the environment, data loading, model construction, and epoch-level console output without launching the full training schedule.

python framework.py --datasets Italy_Air --epochs 1 --device cpu

Run the complete default NASDiff configuration on ETT with point missing ratio 0.1:

python framework.py

The full NASDiff model is computationally heavy on CPU. When CUDA is available, prefer:

python framework.py --device cuda:0

Run the manuscript missing scenarios:

python framework.py --model_name NASDiff --datasets Italy_Air --pattern point --missing_ratio 0.1
python framework.py --model_name NASDiff --datasets ETT --pattern block --missing_ratio 0.5
python framework.py --model_name NASDiff --datasets ETT --pattern subseq --missing_ratio 0.5

Run the included baselines on the same setting:

python framework.py --model_name Transformer --datasets ETT --pattern point --missing_ratio 0.1
python framework.py --model_name CSDI --datasets ETT --pattern point --missing_ratio 0.1

Use a specific device:

python framework.py --device cpu
python framework.py --device cuda:0

Test a saved checkpoint:

python framework.py --mode test_with_trained --model_name NASDiff --checkpoint "ETT NASDiff 0.0 seed31 Test 0.1146 point 0.1.pt"
python framework.py --mode test_with_trained --model_name CSDI --checkpoint "ETT CSDI 0.0 seed31 Test 0.1542 point 0.1.pt"
python framework.py --mode test_with_trained --model_name Transformer --checkpoint "ETT Transformer 0.0 seed31 Test 0.1653 point 0.1.pt"

Datasets

The NASDiff paper evaluates seven datasets. Download them from their original providers and follow their licenses or access conditions:

  1. Beijing Multi-Site Air Quality
  2. Air Quality (Italy)
  3. Caltrans PeMS - registration may be required; third-party mirrors are not official sources
  4. Melbourne Pedestrian benchmark (City of Melbourne source)
  5. ETTh1 / ETT
  6. PhysioNet Challenge 2012
  7. PhysioNet Challenge 2019

No raw or processed third-party data is distributed in this repository. Dataset and cache directories are excluded from Git.

Data and Logs

Dataset loaders follow the same split-first preprocessing path as the manuscript: split the raw data, fit normalization on the training split, transform validation/test splits with the training scaler, and then generate artificial missing masks.

Each run writes its configuration and final results to logs/<model>.log. During training, the console prints the selected configuration, data/model readiness, epoch-start messages, epoch-level train/validation metrics, and early-stopping patience status. In test_with_trained mode, the console prints the final test metrics.

Citation

Please cite the published IEEE Access article as:

@ARTICLE{11614797,
  author={Ma, Siyuan and Xu, Ziwei and Ichise, Ryutaro},
  journal={IEEE Access},
  title={NASDiff: Noise-Aware Diffusion With Short-Trajectory Learning for Consistent Time Series Imputation},
  year={2026},
  volume={14},
  number={},
  pages={111584-111604},
  keywords={Frequency;Imputation;Licenses;Modeling;Noise;Nuclear facility regulation;Timing;Trajectory;Learning (artificial intelligence);Noise reduction;Missing values imputation;time series;diffusion network;short-trajectory learning},
  doi={10.1109/ACCESS.2026.3715336}
}

About

A Noise-Aware Diffusion with Short-trajectory learning for consistent time series imputation.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages