Downloads · 30 days
8
7% of all-time downloads
kozy9/GWLSTM
GWLSTM is a machine learning model from kozy9. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for keras. The card lists the license as mit.
A tuned LSTM model for single-step monthly groundwater level forecasting using meteorological variables as exogenous inputs.
Downloads · 30 days
8
7% of all-time downloads
All-time downloads
118
Public
Repo size
1.2 MB
Likes
0
Public
Click a slice to open those files.
.png739 KB · 52%
From the Hugging Face model README
A tuned LSTM model for single-step monthly groundwater level forecasting using meteorological variables as exogenous inputs.
| Parameter | Value |
|---|---|
| Architecture | LSTM(128) → Dropout(0.1) → Dense(32) → Dense(1) |
| Framework | TensorFlow / Keras |
| Task | Single-step monthly forecasting |
| Lookback window | 24 months |
| Input features | water_level, temperature, precipitation, wind_speed |
| Tuning method | Bayesian Optimisation (Keras Tuner, 20 trials) |
| Split | Period | Months |
|---|---|---|
| Training | 1944-01-01 → 2007-10-01 | 766 |
| Validation | 2007-11-01 → 2015-10-01 | 96 |
| Test | 2015-11-01 → 2023-10-01 | 96 |
| Parameter | Value |
|---|---|
| LSTM layers | 2 |
| Units | 64 |
| Dropout | 0.1 |
| Learning rate | 0.000773 |
| Batch size | 32 |
| Metric | Value |
|---|---|
| RMSE | 2.9386 m |
| MAE | 2.397 m |
| MAPE | 3.671% |
| R² | 0.5505 |
| NSE | 0.5505 |
This model is part of a benchmark study comparing SARIMAX, LSTM, and TCN for UK groundwater level forecasting.
Contemporaneous meteorological variables are used as inputs at forecast time (oracle assumption). Future met values are treated as known — consistent with the experimental setup used across all models in this study.
├── lstm_model.keras # Trained Keras model
├── scaler_X.pkl # Feature scaler (MinMaxScaler)
├── scaler_y.pkl # Target scaler (MinMaxScaler)
├── model_config.json # Config, hyperparameters & metrics
├── inference.py # Load model & generate forecasts
└── README.md # This file
from huggingface_hub import hf_hub_download
from tensorflow.keras.models import load_model
import joblib, pandas as pd, numpy as np
model = load_model(hf_hub_download('kozy9/GWLSTM', 'lstm_model.keras'))
scaler_X = joblib.load(hf_hub_download('kozy9/GWLSTM', 'scaler_X.pkl'))
scaler_y = joblib.load(hf_hub_download('kozy9/GWLSTM', 'scaler_y.pkl'))
# Provide a 24-month window of features
X_window = pd.DataFrame({
'water_level' : [...], # 24 values
'temperature' : [...],
'precipitation': [...],
'wind_speed' : [...],
})
X_scaled = scaler_X.transform(X_window)
X_input = X_scaled.reshape(1, 24, 4)
y_scaled = model.predict(X_input)
pred = scaler_y.inverse_transform(y_scaled)[0][0]
print(f'Next month forecast: {pred:.2f} m')