Flooding is a recurring environmental hazard with devastating socio-economic and ecological impacts, especially in vulnerable regions like Bayelsa State, Nigeria. The state’s low-lying terrain, dense river networks, and poor drainage infrastructure exacerbate its flood susceptibility.
---
# Flood Susceptibility Mapping Using Machine Learning and Morphometric Analysis
## Overview
This project integrates **Machine Learning (ML)** techniques and **morphometric analysis** to assess flood susceptibility across four major catchments in Bayelsa State, Nigeria. The study leverages **Shuttle Radar Topographic Mission (SRTM)** data to extract hydrological features and applies machine learning classifiers to classify flood-prone zones. The goal is to enhance flood prediction accuracy and granularity beyond traditional morphometric methods.
## Dataset
The dataset used for this analysis includes key morphometric features, such as:
- Drainage Density (Dd)
- Stream Frequency (Fs)
- Relief Ratio (Rh)
- Bifurcation Ratio (Rbm)
- Infiltration Number (If)
- Circularity Ratio (Ff)
- Hypsometric Integral (Hh)
- Average Slope (Slope)
The flood-prone labels are generated from historical flood records, with each catchment marked as either **flood-prone (1)** or **not flood-prone (0)**.
You can access the dataset template for training in `morphometric_ml_dataset.csv`.
## Requirements
Ensure you have the following Python packages installed:
- `pandas`
- `numpy`
- `scikit-learn`
- `matplotlib`
- `seaborn`
- `xgboost`
- `lightgbm`
- `shap`
You can install them via `pip`:
```bash
pip install pandas numpy scikit-learn matplotlib seaborn xgboost lightgbm shap
```
## File Structure
```
├── flood_susceptibility_ml.py # Enhanced Python script for model training and evaluation
├── morphometric_ml_dataset.csv # Dataset template for morphometric features
├── results/ # Directory for generated results and visualizations
│ ├── confusion_matrices.png # Confusion matrices for all classifiers
│ ├── roc_curves.png # ROC Curve comparison figure
│ ├── model_comparison.csv # Performance comparison table
│ ├── cross_validation_results.csv# 5-fold cross-validation results
│ ├── model_predictions.csv # Predictio …