Abuja Real Estate Price Predictor using Machine Learning, project focused on predicting property prices in Abuja, Nigeria.real-world property listing data into something practical — a system that can estimate a property’s price based on factors such as: • Location • Property type • Number of bedrooms • Bathrooms • Toilets
# Nigerian Real Estate Price Prediction Using Machine Learning
A Python/Streamlit app that cleans a real Abuja property-listing dataset,
analyzes it, engineers a new feature, trains and compares two ML models,
and predicts sale prices through a simple GUI.
## Project structure
```
project/
├── data/
│ ├── raw_data.csv # original scraped PropertyPro Abuja listings
│ └── cleaned_data.csv # produced by 1_data_cleaning.py
├── charts/ # PNG charts produced by 2_eda.py
├── model/
│ ├── price_model.pkl # trained model + encoders, produced by 3_train_model.py
│ └── model_comparison.csv # MAE/RMSE/R2 comparison table
├── 1_data_cleaning.py # Step 1: cleaning + feature engineering
├── 2_eda.py # Step 2: 5 analytical questions + charts
├── 3_train_model.py # Step 3: train & compare Linear Regression vs Decision Tree
├── app.py # Step 4: Streamlit GUI (prediction + analysis tabs)
└── requirements.txt
```
## How to run it
```bash
pip install -r requirements.txt
# Run these once, in order, to regenerate the cleaned data / charts / model:
python 1_data_cleaning.py
python 2_eda.py
python 3_train_model.py
# Then launch the app:
streamlit run app.py
```
The repo already includes the generated `cleaned_data.csv`, charts, and
`price_model.pkl`, so you can skip straight to `streamlit run app.py` if you
just want to see the GUI — but re-run the pipeline yourself before your
demo so you're comfortable explaining each step.
## Dataset
481 raw property listings scraped from PropertyPro for Abuja, covering both
sale and rent listings across 16 areas (Maitama, Asokoro, Wuse-2, Gwarinpa,
etc.) and 7 property types. Columns: title, price, listing type, area,
neighbourhood, address, bedrooms, bathrooms, toilets, property type, plus
metadata (id, dates, source URL).
**Important scope decision:** this project keeps SALE listings only (231 of
481 rows). Sale prices (hundreds of millions of …