Logo Lanfrica

abel2002-01/ethiopia-drought-predictor

Domaine:

climate

Type de record:

software
Créateur:
abe
Hôte:
# Ethiopia ML 3‑Month MVP → Production‑Ready Path (Weather + FX → Drought Risk) This repository is an **end‑to‑end ML MVP** (data collection → feature engineering → model selection → tracking/registry → evaluation → monitoring → Flask deployment). ## Real data sources - **Open‑Meteo Historical (Archive) API** (no key) for daily weather variables. - **NASA POWER Daily API** (backup/secondary) for daily meteorology. - **exchangerate.host** for USD→ETB FX (optional, used as *impact context*; not a physical driver). ## What it covers (your lectures) - Classification: Logistic Regression, MLP - Kernel methods: SVM (RBF) - Ensembles: Random Forest, AdaBoost - Unsupervised: KMeans/DBSCAN monthly clustering (optional) - Production upgrades: dataset versioning manifest, top‑3 model selection, ClearML tracking/registry, monitoring scaffolding --- # Quick start ## 1) Install ```bash python -m venv .venv # Windows: .venv\Scripts\activate # Linux/Mac: source .venv/bin/activate pip install -r requirements.txt ``` ## 2) Download real data (Weather) ```bash python scripts/download_weather.py --start 2018-01-01 --end 2025-12-31 # Optional backup source: python scripts/download_weather_power.py --start 2018-01-01 --end 2025-12-31 ``` ## 3) Download FX (optional) ```bash python scripts/download_fx.py --start 2018-01-01 --end 2025-12-31 ``` ## 4) Build dataset (SPI-style target + versioning manifest) ```bash python scripts/build_dataset.py # creates: # data/processed/dataset_daily_ .csv # data/processed/dataset_daily_latest.csv # data/manifest.json ``` ## 5) Preliminary model selection (pick 3 promising models) ```bash python train/model_selection.py # creates reports/model_screening.json ``` ## 6) Train and register best model (ClearML optional) ```bash python train/train_models.py # creates models/*.joblib + models/meta.json ``` ## 7) Evaluate spatiotemporal generalization ```bash python train/evaluate_spatiotemporal.py # creates reports/spatiotemporal_eval.json ``` ## 8 …