Sparse Incident-Cluster Learning for 12-hour Port Flood Pre-warning in Digital-Twin Analytics
Organizations: Lancaster University, Lancaster, United Kingdom · Middlesex University, London, United Kingdom
Abstract
Port flood digital twins require analytics that warn operators before disruption, but official warning incidents are often few and adjacent observations are temporally dependent. Row-level classification can therefore overstate performance by placing windows from the same event in both model-development and evaluation data. We formulate 12-hour port flood pre-warning as an incident-cluster learning problem and evaluate a digital-twin analytics module using eight-point water-level histories, prediction-time contextual covariates, and interpretable short-window dynamics. The protocol combines fold-specific sparse feature selection, warning-cluster grouping, negative-label controls, 100-repeat random top-k controls, and alert-episode evaluation. Liverpool is the primary four-cluster case study, with harmonised Humber/Hull-proxy and Wessex South data used for protocol-transfer checks. Across the Liverpool folds, the top-10 ElasticNet model achieves mean F2 = 0.696, compared with 0.633 without top-k truncation and 0.681 for full-feature weighted XGBoost. It is the strongest ElasticNet variant, remains competitive with the nonlinear reference using only ten predictors, and exceeds the repeat-level 95th percentile of broad and same-family random subsets. Contextual covariates provide a strong prediction-time anchor, complemented by physically interpretable local dynamics. Historical replay converts risk scores into alert episodes and measures alert duration and false-episode burden. The result is an offline-evaluated analytics and validation module designed for integration into a port digital twin.
Figures & tables
| Source | Provider | Variables used | Role in this paper | Ref. |
|---|---|---|---|---|
| Flood monitoring archive | Environment Agency | Timestamped observed water levels, monitoring-site descriptors, and measurement-category records | Constructs the eight-point local water-level windows for Liverpool and additional port-region stress tests | [ 22 ] |
| Real-time flood monitoring API | Environment Agency | Station metadata, river/sea level station descriptors, and observation metadata | Supports site mapping, measurement-category definition, and reproducible access to level observations | [ 23 ] |
| Flood warning information service | Environment Agency | Public flood warning and alert records, warning dates, and warning categories | Defines warning-event dates, incident clusters, and 12-hour pre-warning labels | [ 24 ] |
| Processed tide products and tide-gauge records | BODC and NTSLF | Astronomical tide, observed tide, and derived residual candidates where available | Used in exploratory checks of tide-phase and surge-residual features; not retained as the main reported sparse signature | [ 25 ] |
| Dataset | Windows | Clusters | Positives | Pos. rate | Stations | Role |
|---|---|---|---|---|---|---|
| Liverpool primary | 2067 | 4 | 393 | 0.190 | 2 | Main case study |
| Liverpool common-feature view | 2067 | 4 | 393 | 0.190 | 2 | Cross-site baseline |
| Humber/Hull proxy | 4676 | 8 | 766 | 0.164 | 5 | Protocol stress test |
| Wessex South | 2139 | 6 | 327 | 0.153 | 3 | Protocol stress test |
| Stage | Operation |
|---|---|
| Input | Timestamp-ordered held-out water-level histories, prediction-time contextual covariates, trained risk model , validation-selected threshold , and a 30-minute episode-merging gap. |
| State update | At replay time , update the digital state using only observations available at or before . |
| Risk inference | Compute a pre-warning risk score for the current replay state. |
| Episode formation | Aggregate simultaneous scores by their maximum, apply , and merge alerts separated by at most 30 minutes. |
| Event matching | Compare completed alert episodes with official warning times using watch-window, warning-window, and any-pre-event hit rules. |
| Output | Report warning hit rate, watch hit rate, false warning episodes per day, median lead time, missed incidents, and mean alert duration. |
| Model | AP | Val.- | Event recall | False/day | Inputs |
|---|---|---|---|---|---|
| Weighted XGBoost (full) | 1.000 | 33.41 | 71 | ||
| ElasticNet (all candidates) | 0.708 | 17.76 | 71 | ||
| ElasticNet (fold-specific top-10) | 0.833 | 24.72 | 10 | ||
| XGBoost (fold-specific top-10) | 0.917 | 37.56 | 10 | ||
| ElasticNet (context only) | 0.729 | 25.73 | 4 | ||
| ElasticNet (physical only) | 0.813 | 28.54 | 36 |
| Fold | Test cluster | Threshold | AP | Val.- | Event recall | False/day | XGB |
|---|---|---|---|---|---|---|---|
| 1 | C1: 7–11 Sep. | 0.35 | 0.796 | 0.826 | 1.000 | 20.57 | 0.864 |
| 2 | C2: 20 Sep. | 0.55 | 0.441 | 0.624 | 0.500 | 19.17 | 0.631 |
| 3 | C3: 6–8 Oct. | 0.05 | 0.592 | 0.668 | 0.833 | 28.82 | 0.649 |
| 4 | C4: 14 Nov. | 0.25 | 0.438 | 0.664 | 1.000 | 30.33 | 0.581 |
| Control | AP mean SD | mean SD | p95 | Runs selected |
|---|---|---|---|---|
| All candidates | 0.624 | 0% | ||
| No cyclic time | 0.586 | 0% | ||
| No station identity | 0.631 | 0% | ||
| No time or station | 0.596 | 0% | ||
| Physical candidates only | 0.580 | 0% | ||
| Context candidates only ( ) | 0.685 | 0% |
| Model | Real-label AP | Maximum control AP | AP difference |
|---|---|---|---|
| Full weighted XGBoost | 0.580 | 0.406 | 0.173 |
| Top-10 ElasticNet | 0.567 | 0.367 | 0.200 |
| Top-10 XGBoost | 0.553 | 0.379 | 0.174 |
| Signature | Inputs | Val.- | AP | Event recall |
|---|---|---|---|---|
| Cyclic time only | 2 | 0.678 | 0.418 | 0.792 |
| Station identity only | 1 | 0.618 | 0.253 | 1.000 |
| Physical level only | 11 | 0.554 | 0.350 | 1.000 |
| Physical shape only | 25 | 0.594 | 0.380 | 0.813 |
| All physical, no context | 36 | 0.587 | 0.383 | 0.813 |
| Fold-specific hybrid top-10 | 10 | 0.696 | 0.567 | 0.833 |
| Predictor | Family | Selected folds |
|---|---|---|
| Cyclic time-of-day cosine | Temporal context | 4/4 |
| Cyclic time-of-day sine | Temporal context | 4/4 |
| Monitoring-location identity | Site context | 4/4 |
| Within-window directional reversal count | Physical shape | 4/4 |
| Maximum absolute 15-minute level increment | Physical shape | 4/4 |
| Net change over the local window | Physical shape | 3/4 |
| Feature | Normal mean | Pre-warning mean | SMD | Cliff’s delta | Direction consistency |
|---|---|---|---|---|---|
| Maximum absolute level increment | 0.3134 | 0.4236 | 0.8290 | 0.4215 | 0.75 |
| Local amplitude range | 1.6028 | 2.1678 | 0.5976 | 0.3117 | 0.75 |
| Mean absolute level increment | 0.2332 | 0.3151 | 0.6319 | 0.3316 | 0.75 |
| Site | Full XGBoost | Port-nested top-10 | Liverpool-fixed top-10 | Context only | Physical sanity |
|---|---|---|---|---|---|
| Liverpool | 0.381 | 0.481 | 0.457 | 0.558 | 0.509 |
| Humber/Hull proxy | 0.522 | 0.526 | 0.527 | 0.542 | 0.465 |
| Wessex South | 0.503 | 0.527 | 0.514 | 0.528 | 0.422 |
| Model setting | Warning hit | Watch hit | False warn. /day | Median lead (h) | Mean duration (h) | Missed |
|---|---|---|---|---|---|---|
| Context-only SparseLogistic | 1.000 | 1.000 | 0.564 | 15.28 | 14.75 | 0 |
| Full 12-h XGBoost | 1.000 | 0.813 | 0.524 | 15.99 | 28.29 | 0 |
| Nested top-10 SparseLogistic | 1.000 | 1.000 | 0.658 | 14.73 | 13.49 | 0 |
| Nested top-10 XGBoost | 1.000 | 0.813 | 0.465 | 16.29 | 29.92 | 0 |
| Physical-only SparseLogistic | 0.813 | 0.250 | 0.738 | 15.85 | 18.01 | 3 |
Flood Forecasting
Flood forecasting predicts river, coastal, and urban water levels or inundation to support earlier warnings and flood response.
See all 18 papers