Skip to content

Repository files navigation

EstateEngine

Scope: FastAPI • Machine Learning • House Price Prediction

EstateEngine is an end-to-end house price prediction application built with FastAPI and scikit-learn. It compares Linear Regression and Random Forest models, selects the best model through cross-validation, and serves real-time predictions through a responsive web interface and JSON API.


Screenshots

Dashboard

EstateEngine Dashboard

Exploratory Data Analysis

EstateEngine EDA

Model Comparison

EstateEngine Models

Prediction Result

EstateEngine Prediction


Project Overview

The project demonstrates a complete machine learning workflow:

  • Dataset inspection and selected-feature analysis
  • Leakage-safe preprocessing through scikit-learn pipelines
  • Linear Regression and Random Forest comparison
  • Five-fold cross-validation for model selection
  • Held-out test evaluation
  • Model persistence with joblib
  • FastAPI-based prediction serving
  • Jinja2 dashboard with interactive Plotly charts
  • Automated testing, coverage checks, and Render deployment configuration

Features

  • Real-time house price prediction using six property features
  • Linear Regression and Random Forest performance comparison
  • Cross-validation-based champion model selection
  • Interactive EDA and model-performance charts
  • Strict input validation for HTML and JSON requests
  • /health liveness and /ready readiness endpoints
  • Graceful handling of missing or corrupt model artifacts
  • 34 automated tests with 92.05% coverage
  • GitHub Actions CI and Render Blueprint deployment

Tech Stack

Technology Purpose
FastAPI Backend routes, APIs, validation, and application serving
Jinja2 Server-rendered HTML pages
scikit-learn Preprocessing, model training, cross-validation, and evaluation
pandas / NumPy Dataset loading and numerical processing
Plotly Interactive EDA and model-performance charts
joblib Saving and loading trained model pipelines
HTML / CSS / JavaScript Responsive frontend interface
pytest / pytest-cov Automated testing and coverage reporting
Uvicorn ASGI application server
GitHub Actions Continuous integration
Render Web deployment

Model Results

Model MAE RMSE
Linear Regression $27,394.05 $41,325.44 0.7774
Random Forest Regressor $20,389.59 $30,478.68 0.8789

Random Forest Regressor was selected as the final model using the lowest five-fold cross-validation RMSE. The held-out test set was used only for final evaluation.


Dataset & Attribution

EstateEngine uses the Ames Housing dataset introduced by Dean De Cock and distributed through Kaggle's House Prices: Advanced Regression Techniques competition.

The live prediction model uses these six features:

  • OverallQual
  • GrLivArea
  • BedroomAbvGr
  • FullBath
  • GarageCars
  • YearBuilt

The MIT License applies to the project source code only. The dataset remains subject to its original source and usage terms.


Project Scope

This project is designed as a portfolio demonstration of:

  • Supervised regression modeling
  • Cross-validation and held-out testing
  • Reproducible ML pipelines
  • FastAPI and Jinja2 integration
  • Model-serving failure handling
  • Automated testing and deployment configuration

This version does not include:

  • User authentication
  • Prediction history storage
  • A model registry
  • Scheduled retraining
  • Real-time property market data

Future Improvements

  • Random Forest hyperparameter tuning
  • Log-transformed target experimentation
  • Additional property features
  • Model versioning and monitoring
  • Prediction history and user accounts

License

This project is released under the MIT License.

About

An end-to-end FastAPI and scikit-learn house price prediction app with comparative regression modeling, interactive Plotly analysis, automated testing and Render deployment.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages