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.

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
- 01
Compared a median baseline, two Random Forest variants, a tuned model, and a Keras neural network.
- 02
Engineered house-age and total-floor-area features and preserved their ordering as a versioned model contract.
- 03
Built FastAPI endpoints for authenticated batch prediction and optional Databricks SQL persistence.
- 04
Built and deployed a Streamlit interface that validates raw inputs and derives model-ready features.
Architecture
How the work moves
Evidence
Verified results
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
- 1Install the pinned application requirements with Python 3.11–3.13.
- 2Configure API_KEY and run uvicorn main:app on port 8001.
- 3Point Streamlit secrets to the API and upload the included sample_houses.csv.