Logo Lanfrica

DevMarkson/NaijaEstateAI

Domain:

socioeconomic

Record type:

software
Creator:
Dev
Host:
NaijaEstateAI is an ML-powered real estate platform for Nigeria that improves pricing accuracy and transparency. It cleans and engineers features from property listings, trains Linear Regression, Random Forest, and XGBoost, evaluates with CV/metrics, and serves the best model through a Streamlit app and FastAPI. # NaijaEstateAI Machine Learning–driven Real Estate Management System focused on the Nigerian property market (starting with Lagos rent data). The goal is to improve transparency and pricing accuracy by: * Cleaning and structuring fragmented listing data * Predicting likely annual rent (₦) from property attributes * Laying foundations for recommendation, trend analysis & geospatial insights ## Features (Current) * Training script (`train.py`) trains Linear Regression, RandomForest, optionally XGBoost and auto-selects the best (RMSE) * Persisted best model (`models/best_model.joblib`) + metrics JSON (`artifacts/metrics.json`) * Streamlit app (`streamlit_app.py`) for interactive rent prediction * Config centralization (`config.py`) keeping features & paths consistent * Basic test (`tests/test_training.py`) to ensure training produces artifacts ## Roadmap (Planned) 1. Property recommendation engine (content + hybrid) 2. Market trend time-series module (price evolution by location) 3. Geospatial enrichment (lat/long, distance to POIs, clustering) 4. Explainability (SHAP values, feature importance visualization) 5. Data versioning & experiment tracking (DVC / MLflow) 6. Scheduled retraining workflow (GitHub Actions cron) 7. Deployment (Streamlit Cloud / Render) + API endpoints 8. Drift monitoring & simple analytics dashboard ## Setup Install dependencies (ideally in a virtual environment): ```bash pip install -r requirements.txt ``` ## Train Models ```bash python train.py --data lagos-rent.csv --test-size 0.2 --skip-xgb # skip-xgb if environment lacks xgboost ``` Artifacts: * `models/best_model.joblib` * `artifacts/metrics.json` ## Run Streamlit App ```bash streamlit run streamlit_app.py ``` ## Run FastAPI Service (basic web API) ```bash uvicorn api_app:app --reload --port 8000 ``` Then test: ```bash curl -X POST 127.0.0.1 \ -H 'Content-Type: application/json' \ -d '{ "bedrooms":3, "bathrooms":3, "toilets":4, "Serviced":1, "Newly_Bui …