{ "model_type": "LSTM", "architecture": "LSTM(128) \u2192 Dropout(0.1) \u2192 Dense(32) \u2192 Dense(1)", "framework": "TensorFlow/Keras", "task": "Single-step monthly groundwater level forecasting", "features": [ "water_level", "temperature", "precipitation", "wind_speed" ], "target": "water_level", "lookback_months": 24, "horizon_months": 1, "tuning": { "method": "Bayesian Optimisation (Keras Tuner)", "n_trials": 20, "best_config": { "n_layers": 2, "units_1": 64, "dropout": 0.1, "lr": 0.0007731576839806804, "batch_size": 32 } }, "data_splits": { "train": { "start": "1944-01-01", "end": "2007-10-01", "n_months": 766 }, "validation": { "start": "2007-11-01", "end": "2015-10-01", "n_months": 96 }, "test": { "start": "2015-11-01", "end": "2023-10-01", "n_months": 96 } }, "test_metrics": { "RMSE": 2.9386, "MAE": 2.397, "MAPE_pct": 3.671, "R2": 0.5505, "NSE": 0.5505 }, "notes": "Scaler fitted on train only. Oracle exog assumption \u2014 contemporaneous met vars used at forecast time." }