This project implements a Long Short-Term Memory (LSTM) model to predict water demand based on historical data of reservoir levels, groundwater levels, and rainfall in the Cauvery Basin for the year 2023. The model forecasts future demand and provides insights through an interactive Streamlit dashboard.
- LSTM-based Prediction Model: A sequential deep learning model trained on time-series data.
- Data Processing: Includes exploratory data analysis (EDA) and preprocessing steps.
- Evaluation Metrics: Uses Mean Squared Error (MSE), Root Mean Squared Error (RMSE), and Mean Absolute Error (MAE).
- Interactive Dashboard: Built with Streamlit, displaying visualizations and key insights.
- Deployment: Hosted on Streamlit Community Cloud.
📂 project_root/
│── 📁 .streamlit/ # Streamlit configuration files
│── 📁 pages/ # Additional pages for the Streamlit app
│── 📄 source_code.ipynb # Contains model implementation, preprocessing, EDA, prediction, and testing scripts
│── 📄 Data.csv # Dataset containing water-related data
│── 📄 Home.py # Main script for launching the Streamlit app
│── 📄 model.keras # Trained LSTM model file
│── 📄 requirements.txt # Dependencies for running the project
│── 📄 README.md # Project documentation
- Clone the repository:
git clone https://github.com/Jayam-Nagomi/Water-Demand-Forecasting-Dashboard cd Water-Demand-Forecasting-Dashboard
- Install dependencies:
pip install -r requirements.txt
- Run the Streamlit dashboard:
streamlit run app.py
model = Sequential([
LSTM(64, return_sequences=True, input_shape=(X_train.shape[1], X_train.shape[2])),
LSTM(32, return_sequences=False),
Dense(y_train.shape[1])
])
- Optimizer: Adam
- Loss Function: MSE
- Regularization: Early stopping & checkpointing
- Training Data Split: Training & validation sets
The Streamlit app is deployed on Streamlit Community Cloud. If inactive, it may go to sleep but wakes up when accessed.