Enhancing Temperature Forecasting for Sustainable Energy Systems Using CTGAN‑Based Data Augmentation and Temporal Convolutional Networks

Ping-Huan Kuo, Yu-Sian Lin, Yu-Chih Chiu

National Cheng Kung University

Energy Reports, Volume 16, 109646 (2026) · 10.1016/j.egyr.2026.109646

Abstract

Accurate temperature forecasting plays a critical role in energy management, building operation optimization, and sustainable energy system planning. Reliable short-term temperature prediction can significantly improve the operational efficiency of heating, ventilation, and air conditioning systems, data centers, and smart energy infrastructures. This paper introduces a temperature prediction method that uses multiple weather prediction datasets to establish models for the maximum and minimum temperatures. A temporal convolutional network (TCN) is used for temperature prediction and a conditional tabular generative adversarial network (CTGAN) for data augmentation. Given the challenge of fitting CTGAN-generated synthetic data to the original data and the inefficiency of hyperparameter tuning for CTGANs, this study adopts a series of data preprocessing methods — outlier removal with a one-class support vector machine, dataset normalization, and the Yeo–Johnson transformation — that bring the distribution of the synthesized data close to that of the original data. The proposed TCN + CTGAN model with preprocessing consistently outperformed the TCN baseline and the unprocessed augmentation variant across all experimental configurations. On the Seattle dataset, the model achieved R2 values of 0.829 and 0.819 for the maximum and minimum temperatures, with corresponding RMSE values of 3.039 and 2.136. On the Seoul dataset, R2 values of 0.441 and 0.681 were obtained, with RMSE values of 2.346 and 1.395.

Key Results

R2 0.829

Seattle maximum temperature with the full workflow (MAE 2.397, RMSE 3.039), against 0.822 for the TCN baseline and 0.801 for unprocessed CTGAN augmentation

−89%

Wasserstein distance between synthetic and real Seattle maximum temperatures, 1.463 → 0.167 across the three preprocessing stages — standardisation alone accounts for 1.283 → 0.175

4 / 4

dataset–target combinations where the proposed workflow beats both the TCN baseline and unprocessed augmentation, across two climates and 10-fold cross-validation

Method

CTGAN is fitted inside each cross-validation fold, so synthetic samples never see the held-out test data. The contribution is the preprocessing stage between generation and training: it aligns the synthetic distribution with the real one without any CTGAN hyperparameter search.

Pipeline of the proposed TCN + CTGAN workflow Original data is split into ten folds; the nine training folds are augmented by a per-fold CTGAN, the synthetic data then passes through one-class SVM outlier removal, standardisation and the Yeo-Johnson transformation, and a temporal convolutional network is trained on the result. The held-out fold is used for evaluation, and metrics are pooled over all ten folds. 1 Original data Seattle · 1,461 daily records Seoul · 7,750 records, 26 stations 5-day window → next-day value 2 10-fold cross-validation 9 folds train · 1 fold held out repeated until every fold has served once as the test set 3 CTGAN augmentation fitted per fold · 500 epochs 1,400 synthetic rows per fold min–max bounds enforced 4 Preprocessing One-class SVM outlier removal Standardisation Yeo–Johnson transformation 5 TCN backbone temporal convolutional network 4 dilated causal levels, d = 1, 2, 4, 8 hidden 25 · kernel 2 · batch 10 MSE loss · Adam @ 1e-3 6 Pooled evaluation predictions from all 10 folds concatenated, then scored once MAE · RMSE · R² train held-out fold (evaluation only)
The proposed workflow. Steps 1–3 run inside every cross-validation fold, so no synthetic sample is ever derived from held-out data. Step 4 is the contribution of this work: three fixed transformations that close the distributional gap between CTGAN output and real observations, replacing exhaustive CTGAN hyperparameter tuning.

Datasets

Two publicly available meteorological datasets with different climates, scales, and temporal coverage. Only the target temperature variable is fed to the model — adding further weather variables degraded accuracy, as the input configuration table below shows.

Dataset Source Records Period Targets
Seattle Kaggle — Weather Prediction 1,461 2012-01-01 – 2015-12-31, daily next-day Tmax / Tmin
Seoul UCI — Bias correction of numerical prediction model temperature forecast 7,750 Summers (Jun–Aug) 2013 – 2017, 26 stations next-day Tmax / Tmin
Daily maximum and minimum temperature of the Seattle dataset over time, 2012 to 2015.
Seattle — four full years of daily temperature
Daily maximum and minimum temperature of the Seoul dataset over the summers of 2013 to 2017.
Seoul — summer-only records, narrower temperature range

Aligning Synthetic Data with Real Data

Raw CTGAN output does not match the real distribution, and training on it makes forecasts worse. Each preprocessing stage is scored with the Wasserstein distance between the synthetic and original distributions — lower is closer.

Kernel density estimates of the maximum temperature distributions for Seattle and Seoul at four preprocessing stages: before outlier removal, after outlier removal, after standardisation, and after the Yeo-Johnson transformation.
Maximum temperature — synthetic (dashed) against original (solid) at each stage
Kernel density estimates of the minimum temperature distributions for Seattle and Seoul at four preprocessing stages: before outlier removal, after outlier removal, after standardisation, and after the Yeo-Johnson transformation.
Minimum temperature — synthetic (dashed) against original (solid) at each stage
Wasserstein distance between the original and CTGAN-synthesised data at each preprocessing stage.
Stage Seattle Tmax Seattle Tmin Seoul Tmax Seoul Tmin
Before outlier removal1.4633.0010.9640.359
After outlier removal1.2832.9560.9590.419
After standardisation0.1750.5950.3090.172
After Yeo–Johnson transformation0.1670.6460.3230.163

Standardisation is by far the most impactful step. The Yeo–Johnson transformation optimises for normality rather than for transport cost, so it can raise the distance slightly (Seattle Tmin, Seoul Tmax) while still improving the shape alignment visible in the density plots.

Results

All numbers are pooled over the 10 cross-validation folds: the test predictions of every fold are concatenated and scored once, rather than averaging per-fold metrics.

Proposed workflow vs. baseline and unprocessed augmentation

DatasetTargetModel MAERMSER2
SeattleMaximumTCN2.4413.0980.822
TCN + CTGAN (no preprocessing)2.5813.2820.801
TCN + CTGAN (with preprocessing)2.3973.0390.829
MinimumTCN1.7042.1670.814
TCN + CTGAN (no preprocessing)1.8572.4040.771
TCN + CTGAN (with preprocessing)1.6642.1360.819
SeoulMaximumTCN1.9842.4590.386
TCN + CTGAN (no preprocessing)1.9912.4570.387
TCN + CTGAN (with preprocessing)1.8632.3460.441
MinimumTCN1.0981.4240.667
TCN + CTGAN (no preprocessing)1.1301.4610.650
TCN + CTGAN (with preprocessing)1.0771.3950.681

Unprocessed synthetic data degrades every configuration; after preprocessing, the same synthetic data improves every configuration.

Choosing the backbone — seven models under identical conditions

DatasetTargetModel MAERMSER2
SeattleMaximumTCN2.4413.0980.822
ARIMA2.5453.2840.800
Random Forest2.5893.2880.800
LSTM3.0253.8310.728
GRU3.1633.9770.707
LightGBM3.2434.0340.699
SVM3.3394.3460.650
MinimumTCN1.7042.1670.814
ARIMA1.7482.2400.801
Random Forest1.7652.2440.800
SVM2.2112.8840.670
GRU2.2252.8550.677
LightGBM2.2262.7490.700
LSTM2.2902.9400.657
SeoulMaximumTCN1.9842.4590.386
SVM2.0012.4760.378
Random Forest2.0282.5360.347
GRU2.0962.5850.321
LightGBM2.1202.6070.310
LSTM2.1212.6160.305
ARIMA2.2692.9550.113
MinimumTCN1.0981.4240.667
Random Forest1.1961.5340.614
SVM1.2081.5560.603
GRU1.2181.5720.595
ARIMA1.2291.6150.572
LSTM1.2891.6650.545
LightGBM1.3111.6620.547

Ranked by MAE within each block, no augmentation applied. TCN gives the lowest MAE and the highest R2 in all four dataset–target combinations, which is why it is adopted as the backbone.

Input configuration — Seattle

TargetInput MAERMSER2
MaximumOnly the max temperature2.4413.0980.822
All numerical data2.6483.3730.789
All (incl. weather type)2.8263.6010.760
MinimumOnly the min temperature1.7042.1670.814
All numerical data1.7192.1890.810
All (incl. weather type)1.8322.3550.780

Extra meteorological variables act as noise for next-day temperature forecasting, so the univariate configuration is used throughout.

Prediction Quality

Pooled predictions of the final TCN + CTGAN (processed) model across all ten folds.

Scatter plot of predicted versus actual Seattle maximum temperature.
Seattle · maximum — MAE 2.397, RMSE 3.039, R2 0.829
Residual plot with marginal distributions for the Seattle maximum temperature.
Residuals, Seattle maximum temperature
Scatter plot of predicted versus actual Seattle minimum temperature.
Seattle · minimum — MAE 1.664, RMSE 2.136, R2 0.819
Residual plot with marginal distributions for the Seattle minimum temperature.
Residuals, Seattle minimum temperature
Scatter plot of predicted versus actual Seoul maximum temperature.
Seoul · maximum — MAE 1.863, RMSE 2.346, R2 0.441
Residual plot with marginal distributions for the Seoul maximum temperature.
Residuals, Seoul maximum temperature
Scatter plot of predicted versus actual Seoul minimum temperature.
Seoul · minimum — MAE 1.077, RMSE 1.395, R2 0.681
Residual plot with marginal distributions for the Seoul minimum temperature.
Residuals, Seoul minimum temperature

BibTeX

@article{KUO2026109646,
  title   = {Enhancing temperature forecasting for sustainable energy systems using
             {CTGAN}-based data augmentation and temporal convolutional networks},
  author  = {Kuo, Ping-Huan and Lin, Yu-Sian and Chiu, Yu-Chih},
  journal = {Energy Reports},
  volume  = {16},
  pages   = {109646},
  year    = {2026},
  issn    = {2352-4847},
  doi     = {10.1016/j.egyr.2026.109646},
  url     = {https://www.sciencedirect.com/science/article/pii/S2352484726006153}
}