All projects
02Machine learning systems2026Evidence verified

Iowa Housing ML Pipeline

An end-to-end house-price prediction system spanning feature engineering, model comparison, a secured API, and a hosted batch interface.

Iowa House Price Predictor showing five successful sample predictions and summary values

The context

From an interesting idea to an inspectable system.

A useful model needs more than a notebook result. This project carries an Ames housing experiment through a strict nine-feature contract, serialized model artifacts, CSV validation, API-key authentication, and a Streamlit client.

My contribution

What I built

  1. 01

    Compared a median baseline, two Random Forest variants, a tuned model, and a Keras neural network.

  2. 02

    Engineered house-age and total-floor-area features and preserved their ordering as a versioned model contract.

  3. 03

    Built FastAPI endpoints for authenticated batch prediction and optional Databricks SQL persistence.

  4. 04

    Built and deployed a Streamlit interface that validates raw inputs and derives model-ready features.

Architecture

How the work moves

01Ames training data
02Feature engineering
03Tuned Random Forest
04FastAPI + Streamlit

Evidence

Verified results

01Held-out MAE: $21,245
02Held-out RMSE: $31,748
03Held-out R²: 0.8587
0462.5% lower MAE than the median baseline

Honest evaluation

Limits and trade-offs

  • The reported metrics use one random 80/20 split on 1,460 Ames rows, not temporal validation or cross-validation.
  • The results do not establish performance under market drift or on homes outside the dataset distribution.
  • The public application can cold-start after inactivity and depends on a separately hosted API.
  • Databricks persistence is optional and was not exercised during the portfolio audit.

Inspect the work

Stack and reproduction

  • Python
  • scikit-learn
  • Random Forest
  • FastAPI
  • Streamlit
  • Databricks SQL
  1. 1Install the pinned application requirements with Python 3.11–3.13.
  2. 2Configure API_KEY and run uvicorn main:app on port 8001.
  3. 3Point Streamlit secrets to the API and upload the included sample_houses.csv.