Hybrid Semantic Context-Enhanced Ensemble Learning for Wind Power Ramp-Event Forecasting and Uncertainty-Aware Evaluation
Organizations: Department of Industrial and Systems Engineering, University of Tennessee, Knoxville Knoxville, TN 37996, USA. · Department of Mechanical and Aerospace Engineering, University of Tennessee, Knoxville Knoxville, TN 37996, USA. · Department of Mechanical Engineering, Pakistan Institute of Engineering and Applied Sciences, Islamabad, Pakistan. · Department of Computer Science, Pakistan Institute of Engineering and Applied Sciences, Islamabad, Pakistan.
Abstract
Wind power ramp events which are sudden, large swings in turbine output over short windows are difficult to estimate, and standard models often miss them. Hybrid forecasting approach is built which augments semantic context to ramp-event forecast. Rather than applying an extensive language model directly to predict turbine operating data, we have implemented a pipeline where turbine operating data is converted to simplified text, which is then converted to dense embeddings to be used as inputs for ensemble models incorporated with other features. Testing runs are performed at multiple intervals within the SDWPF dataset, including 10-minute, 30-minute, and 60- minute horizons, with ramp events constituting the highest change in future power output. We check robustness against autoregressive, LSTM, and GRU baselines plus several ensemble configurations, using Diebold-Mariano tests and bootstrap confidence intervals, and we vary the ramp threshold, compress the embeddings with PCA, and validate externally on Kaggle SCADA and NREL data with uncertainty-aware scoring. The semantic-context features produce negligible yet statistically significant gains over the baselines in multiple paired ensemble runs, most clearly at the 30- and 60-minute horizons where these gains hold across different ramp-threshold definitions, and PCA compression helps in some longer-horizon cases. The best context- augmented ensembles rank near the top overall, though the GRU model still posts the lowest ramp-event RMSE at 30 and 60 minutes. External tests confirm the error reduction generalizes across datasets, but the size of the gain depends on both model and dataset. Prediction intervals cover most test cases well but weaken during ramp events, pointing to a localized shift in the data distribution.
Figures & tables
| Research stream | Recent focus | Position of the present study |
|---|---|---|
| Wind power forecasting | Statistical, machine-learning, deep-learning, hybrid, and probabilistic forecasting | Evaluates classical, ensemble, sequence-learning, and context-enhanced models across multiple horizons |
| Ramp-event forecasting | Ramp detection, regression, classification, probabilistic prediction, attention, graph-based models, and multi-task learning | Defines horizon-specific ramp subsets and evaluates forecasting performance separately during high-ramp conditions |
| Feature representation | Historical measurements, meteorological inputs, lagged features, statistical features, feature extraction, and learned representations | Adds symbolic operating states, TF-IDF features, LLM-derived semantic embeddings, and PCA-compressed semantic representations |
| Transformer forecasting | Attention, decomposition, frequency-domain modeling, patch-based representations, exogenous variables, and multiscale modeling | Uses strong sequence-learning models as comparison baselines for context-enhanced forecasting |
| LLM and foundation models | LLM reprogramming, autoregressive LLM forecasting, zero-shot forecasting, and pretrained time-series foundation models | Uses an LLM as a semantic operating-context encoder rather than as the direct forecasting model |
| Uncertainty estimation | Probabilistic forecasting, quantile prediction, conformal intervals, and distributional forecasting | Evaluates interval coverage and width separately for complete-test and ramp-event samples |
| Item | Description |
|---|---|
| Primary dataset | Spatial Dynamic Wind Power Forecasting (SDWPF) dataset |
| Original turbine coverage | 134 wind turbines |
| Turbines used in main study | Turbines 1–20 |
| External validation datasets | Kaggle wind turbine SCADA and NREL wind turbine data |
| Sampling interval | 10 minutes |
| Forecast horizons | 10, 30, and 60 minutes |
| Variable group | Variables | Forecasting role |
|---|---|---|
| Meteorological variables | Wind speed, wind direction, external temperature | Capture atmospheric conditions |
| Turbine operating variables | Internal temperature, nacelle direction, blade pitch angles | Represent turbine behavior |
| Power variables | Active power, reactive power | Represent current generation and electrical state |
| Spatial and temporal variables | Turbine coordinates, hour, minute, day/month proxies | Capture location and time patterns |
| Lagged and rolling variables | Power lags, rolling means, rolling standard deviations | Capture recent dependence and volatility |
| Context variables | Wind-speed change, power change, direction change, variability indicators | Capture operating-regime changes |
| Notation | Description |
|---|---|
| Turbine index | |
| Current time step | |
| Forecast horizon, where | |
| Active power output of turbine at time | |
| Predicted active power output at horizon | |
| Forecasting target, defined as |
| Forecast horizon | Prediction step | Ramp definition | Ramp threshold |
|---|---|---|---|
| 10 min | Top 10% of | 93.552 kW | |
| 30 min | Top 10% of | 172.700 kW | |
| 60 min | Top 10% of | 248.814 kW |
| Context representation | Construction | Forecasting role |
|---|---|---|
| Numerical context | Wind-speed change, power change, direction change, and variability features | Captures short-term operating changes |
| Symbolic context | Discretized wind, power, change, and ramp-risk categories | Represents operating regimes in categorical form |
| TF-IDF text context | Short descriptions created from symbolic states | Tests sparse textual context representation |
| Rich semantic context | Embeddings of detailed operational summaries | Captures semantic turbine-state and ramp-risk information |
| PCA-compressed context | Lower-dimensional projection of rich semantic embeddings | Tests whether compressed semantic features reduce embedding noise |
| Evaluation setting | Samples included | Purpose |
|---|---|---|
| All-test evaluation | All observations in the chronological test period | Measures general forecasting performance |
| Ramp-event evaluation | Top 10% highest absolute future power-change samples | Measures performance under high-variability regimes |
| Ramp-threshold sensitivity | Top 10%, 15%, and 20% highest absolute power-change samples | Tests robustness to ramp definition |
| Persistence comparison | Model RMSE compared with persistence RMSE | Quantifies improvement over a strong short-horizon baseline |
| Paired LLM comparison | Same model trained with and without rich semantic embeddings | Isolates the contribution of LLM-derived context |
| Bootstrap confidence intervals | Resampled paired test predictions | Quantifies uncertainty in RMSE gains |
| Model category | Models included | Purpose |
|---|---|---|
| Persistence | Persistence | Strong short-horizon reference baseline |
| Classical time-series baselines | Rolling mean, AR-Ridge, AR-ElasticNet | Tests autoregressive lag-based forecasting performance |
| Context-ablation XGBoost | XGBoost-Lag, Symbolic-XGBoost, TF-IDF-XGBoost, Short LLM-XGBoost, Rich LLM-XGBoost | Tests different context representations |
| Expanded ML baselines | Ridge, ElasticNet, Random Forest, Extra Trees, HistGradientBoosting, XGBoost, LightGBM, CatBoost | Compares against strong non-LLM models |
| Paired LLM comparison | Same model trained with and without rich semantic embeddings | Isolates the effect of LLM-derived context |
| PCA embedding variants | Rich-LLM-384, PCA-16, PCA-32, PCA-64, PCA-128 | Tests whether compressed semantic embeddings reduce noise |
| Horizon | Model | MAE | RMSE | RMSE gain (%) | |
|---|---|---|---|---|---|
| 10 min | Persistence | 167.17 | 187.32 | 0.7439 | 0.00 |
| 10 min | XGBoost-Lag | 156.48 | 182.05 | 0.7581 | 2.82 |
| 10 min | Symbolic Context-XGBoost | 154.71 | 180.53 | 0.7621 | 3.63 |
| 10 min | TF-IDF TextContext-XGBoost | 154.83 | 180.83 | 0.7613 | 3.47 |
| 10 min | Short LLMContext-XGBoost | 154.88 | 180.76 | 0.7615 | 3.51 |
| 10 min | Rich LLMContext-XGBoost | 153.77 | 179.03 | 0.7660 | 4.43 |
| Horizon | Subset | Context RMSE | Rich LLM RMSE | Gain (%) | DM stat. | -value |
|---|---|---|---|---|---|---|
| 10 min | All-test | 67.022 | 65.850 | 1.749 | 15.919 | |
| 10 min | Ramp-event | 180.529 | 179.027 | 0.832 | 6.170 | |
| 30 min | All-test | 121.869 | 117.211 | 3.822 | 23.477 | |
| 30 min | Ramp-event | 290.656 | 288.570 | 0.718 | 5.067 | |
| 60 min | All-test | 167.212 | 166.700 | 0.306 | 1.905 | 0.057 |
| 60 min | Ramp-event | 383.094 | 383.396 | -0.079 | -0.545 | 0.586 |
| Horizon | Model | MAE | RMSE | RMSE gain (%) | |
|---|---|---|---|---|---|
| 10 min | XGBoost Standard | 152.731 | 178.848 | 0.767 | 4.524 |
| 10 min | Extra Trees | 155.468 | 179.691 | 0.764 | 4.074 |
| 10 min | CatBoost | 154.824 | 179.719 | 0.764 | 4.059 |
| 10 min | LightGBM | 154.101 | 180.366 | 0.763 | 3.714 |
| 10 min | HistGB | 154.435 | 180.433 | 0.762 | 3.678 |
| 30 min | CatBoost | 249.109 | 287.395 | 0.423 | 8.499 |
| Horizon | Model | No-LLM RMSE | Rich-LLM RMSE | LLM gain (%) |
|---|---|---|---|---|
| 10 min | Random Forest | 179.775 | 178.753 | 0.569 |
| 10 min | CatBoost | 179.564 | 178.840 | 0.403 |
| 10 min | XGBoost | 179.233 | 178.971 | 0.146 |
| 10 min | Extra Trees | 179.339 | 179.463 | -0.069 |
| 10 min | HistGB | 180.411 | 180.550 | -0.077 |
| 30 min | HistGB | 293.396 | 289.110 | 1.461 |
| Horizon | Model | RMSE gain (%) | 95% CI lower | 95% CI upper |
| 10 min | Random Forest | 0.569 | 0.128 | 0.989 |
| 10 min | CatBoost | 0.403 | 0.216 | 0.583 |
| 10 min | XGBoost | 0.146 | -0.147 | 0.473 |
| 30 min | HistGB | 1.461 | 1.199 | 1.725 |
| 30 min | XGBoost | 1.135 | 0.878 | 1.388 |
| 30 min | Random Forest | 0.804 | 0.447 | 1.160 |
| Horizon | Ramp definition | Best model | RMSE gain (%) |
|---|---|---|---|
| 10 min | Top 10% | Random Forest | 0.569 |
| 10 min | Top 15% | Random Forest | 0.823 |
| 10 min | Top 20% | Random Forest | 0.979 |
| 30 min | Top 10% | HistGB | 1.461 |
| 30 min | Top 15% | HistGB | 1.651 |
| 30 min | Top 20% | XGBoost | 1.814 |
| Horizon | Model | Best semantic variant | Best RMSE | Gain vs. No-LLM (%) |
| 10 min | Random Forest | Rich-LLM-384 | 179.795 | 1.334 |
| 10 min | HistGB | Rich-LLM-384 | 180.316 | 0.553 |
| 10 min | XGBoost | PCA-64 | 180.323 | 0.386 |
| 10 min | CatBoost | Rich-LLM-384 | 179.159 | 0.295 |
| 30 min | Random Forest | Rich-LLM-384 | 285.783 | 1.568 |
| 30 min | XGBoost | Rich-LLM-384 | 288.725 | 1.077 |
| Horizon | Model group | MAE | RMSE | sMAPE | |
|---|---|---|---|---|---|
| 10 min | Rich-LLM ensemble | 154.555 | 178.753 | 30.730 | 0.767 |
| 10 min | No-LLM ensemble | 152.766 | 179.233 | 31.060 | 0.766 |
| 10 min | GRU | 158.040 | 182.352 | 32.448 | 0.757 |
| 10 min | LSTM | 154.636 | 182.350 | 30.854 | 0.757 |
| 10 min | Persistence | 167.170 | 187.323 | – | 0.744 |
| 10 min | AR-Ridge | – | 202.601 | – | – |
| Dataset | Horizon | Non-LLM RMSE | LLM RMSE | Best LLM model | LLM gain (%) |
|---|---|---|---|---|---|
| Kaggle SCADA | 10 min | 262.889 | 262.502 | HistGB | 0.147 |
| Kaggle SCADA | 30 min | 419.826 | 417.090 | Random Forest | 0.652 |
| Kaggle SCADA | 60 min | 564.367 | 554.269 | Extra Trees | 1.789 |
| NREL Wind | 10 min | 10.354 | 10.046 | Extra Trees | 2.967 |
| NREL Wind | 30 min | 15.084 | 13.483 | Extra Trees | 10.615 |
| NREL Wind | 60 min | 20.755 | 18.305 | Extra Trees | 11.805 |
| Horizon | All PICP | Ramp PICP | Cov. drop | All MPIW | Ramp MPIW | Width inc. |
|---|---|---|---|---|---|---|
| 10 min | 87.74 | 46.80 | 40.94 | 120.88 | 293.41 | 142.74% |
| 30 min | 87.07 | 45.89 | 41.18 | 228.75 | 478.98 | 109.39% |
| 60 min | 85.19 | 47.12 | 38.07 | 321.44 | 623.88 | 94.09% |