Logo Lanfrica

Mukundithe1st/property-valuator-zimbabwe

Domain:

socioeconomic

Record type:

model
Creator:
Muk
Host:
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 …