Three regressors, one dataset, and why the simplest model won.

role
Solo build
status
Live
when
Apr 2026
ownership
Solo
price.pipelineData & ML engineering
percentile →areaprice

Who did what. Personal project, written up as the study 'Simplicity Over Complexity'.

Overview

An end-to-end pipeline on a 545-property housing dataset: EDA, encoding and scaling, Linear Regression, Decision Tree and Random Forest, 5-fold cross-validation and hyperparameter sweeps. Linear Regression won on the held-out test set and is the model deployed behind a FastAPI app that also places each prediction as a percentile of the market.

Why it exists

A more complex model is not automatically a better one. The study tests that assumption on real data and explains the result.

My part

  • Built the preprocessing and model pipeline and compared models with cross-validation and tuning.
  • Served the winning model with FastAPI and a single-page client that shows the prediction's percentile.
  • Wrote the full study, from dataset description to deployment.

How it works

  1. a

    Explore

    Distributions and price drivers across 545 properties.

  2. b

    Prepare

    LabelEncoder and StandardScaler.

  3. c

    Compare

    Linear Regression, Decision Tree, Random Forest.

  4. d

    Deploy

    Joblib pipeline behind a FastAPI /predict endpoint.

Built with

  • Scikit-learn
  • Pandas
  • FastAPI
  • Joblib
Linear Regression R²
0.7625 (deployed)
Random Forest R²
0.7419
Decision Tree R²
0.1442 (overfit)

Status & next

Free-tier hosting may need a moment to wake.

Source: the study 'Simplicity Over Complexity' and github.com/AA-KH/Machine-Learning-Pipeline