This project provides an end‑to‑end machine learning solution for estimating property prices in Zimbabwe (primary data from Harare and Bulawayo).
# 🏠 Zimbabwe Property Valuator
**An AI-powered Automated Valuation Model (AVM) for residential real estate in Zimbabwe.**
---
## 📌 Overview
This project provides an end‑to‑end machine learning solution for estimating property prices in Zimbabwe (primary data from Harare and Bulawayo). It includes:
- Data cleaning and feature engineering (Phase 2 & 3)
- XGBoost model training with hyperparameter tuning via Optuna (Phase 4 & 5)
- SHAP explainability (Phase 6)
- An **interactive Streamlit web app** (Phase 8) that lets users input property details and get instant price estimates, segment classification, and what‑if analysis.
---
## 🚀 Features
- **Instant Valuation** – Enter property specs and receive a predicted market value with a confidence range.
- **Segment Classification** – Budget, Mid, Premium, or Luxury.
- **What‑If Analysis** – See how changes in floor area, bedrooms, or land size affect the price.
- **Compare Properties** – Side‑by‑side comparison of two properties.
- **SHAP‑Driven Insights** – Understand which features drive the estimate for each property.
- **PDF/JSON Export** – Download a valuation report.
---
## 🧠 Model Performance
| Metric | Value |
|----------|--------|
| Model | XGBoost Regressor |
| Target | log(1 + price) |
| R² (test)| ~0.81 |
| MAE | ~USD 91,000 |
| Features | 25 (leakage‑free) |
| Training | ~1,985 listings from property.co.zw |
---
## 📁 Repository Structure
```
property-valuator-zimbabwe/
├── data/
│ └── processed/
│ ├── properties_features.csv # feature‑engineered dataset
│ └── properties_clean.csv # (optional) cleaned raw data
├── models/
│ ├── xgb_tuned.pkl # final XGBoost model
│ └── model_metadata.json # metrics and feature list
├── notebooks/
│ ├── phase1_eda.ipynb
│ ├── phase2_clean.ipynb
│ ├── phase3_features.ipynb
│ ├── phase4_train.ipynb
│ ├── phase5_tune.ipynb
│ └── phase6_shap.ipynb
├── streamlit_app.py # Stre …