PropSight is an interactive real estate valuation web app that uses ensemble machine learning models to estimate house prices based on property features. Simply enter a home's specs — size, quality, neighborhood, year built — and PropSight returns an instant price prediction backed by three trained models: Ridge Regression, Lasso Regression, and a Gradient Boosting Regressor.
📊 Held-out test accuracy: R² = 93.68% · MAE = $12,695
- 🔮 Instant price prediction — enter property details and get a valuation in real time
- 🤖 Three ML models — Ridge, Lasso, and Gradient Boosting with live comparison
- 📈 Key price drivers — feature importance chart pulled live from the trained GBR model
- 🏘️ Neighborhood-aware — one-hot encoded neighborhood effects trained into the model
- 📄 Technical documentation — downloadable PDF with full methodology
- 🎛️ Sensible defaults — non-user features default to dataset medians (no phantom $184M predictions)
No installation needed — the app is deployed and ready at:
DataSet Available at Kaggle:
propsight-analysis/
├── app.py # 🚀 Streamlit app (entry point)
├── requirements.txt # 📦 Python dependencies
├── notebook.ipynb # 📓 Exploratory data analysis
├── Technical_Documentation.pdf # 📄 Full methodology writeup
│
├── data/
│ └── train.csv # 🏠 Ames Housing dataset
│
└── models/
├── ridge_model.pkl # Ridge regression
├── lasso_model.pkl # Lasso regression
├── gbr_model.pkl # Gradient Boosting (primary)
├── model_columns.pkl # Feature schema
├── feature_medians.pkl # Median defaults for non-user inputs
├── feature_importances.pkl # Live driver chart data
└── metrics.pkl # Honest held-out test metrics
# 1. Clone the repo
git clone https://github.com/Butkii025/propsight-analysis.git
cd propsight-analysis
# 2. Install dependencies
pip install -r requirements.txt
# 3. Run the app
streamlit run app.pyThe app will open at http://localhost:8501.
| Model | Description | Role |
|---|---|---|
| Gradient Boosting | 500 trees, max depth 4 | Primary predictor |
| Ridge Regression | L2-regularised linear | Comparison baseline |
| Lasso Regression | L1-regularised linear | Comparison baseline |
All models are trained on the Ames Housing dataset and evaluated on a held-out test split.
Test R² → 93.68%
Test MAE → $12,695
If you update data/train.csv, regenerate all model artifacts with:
python train_model.pyThen push the updated models/ folder — Streamlit Cloud auto-redeploys on every push.
git add models/
git commit -m "retrain: updated model artifacts"
git push| Bug | File | Fix |
|---|---|---|
| Default inputs predicted $184M | app.py |
Non-user features now default to dataset medians |
| Neighborhood had zero effect on price | train_model.py |
Neighborhood one-hot columns now trained and saved |
| R²/MAE computed on training data | train_model.py |
Reports honest held-out test metrics |
| "Key Drivers" chart was hardcoded | app.py |
Pulled live from gbr_model.feature_importances_ |
| Layer | Technology |
|---|---|
| Frontend / UI | Streamlit |
| ML Models | scikit-learn (Ridge, Lasso, GBR) |
| Data Wrangling | pandas, numpy |
| Visualisation | Plotly |
| Model Serialisation | joblib |
| Deployment | Streamlit Community Cloud |
This project is licensed under the MIT License — see the LICENSE file for details.
⭐ Star this repo if you found it useful! ⭐