Ames Housing Price Pipeline
End-to-End Machine Learning Pipeline for Automatic Property Evaluation
Production-ready ML pipeline for predicting Ames housing prices (2,930 sales, 80+ features). XGBoost with R² 0.947 and RMSE $18,350, K-fold tuning and inference API.
Highlights
- XGBoost champion: RMSE $18.350, MAE $11.939, R² 0.9471, MAPE 7.19% on test set
- Modular preprocessing with separate transformers for numerical, ordinal, and nominal features
- Transformed Target Regressor for training in log space and mitigating price skew
- K-fold cross-validation with 5-fold reproducible hyperparameter tuning
- 5 theoretical guides on regression, regularization, trees, metrics, and preventing data leakage
- API inference predict_price() + CLI (ames-train --quick)
- Every justified design decision documented (Jekyll site)
What is the project?
Pipeline ML end-to-end per la previsione dei prezzi delle case nel dataset Ames (Iowa, USA): 2.930 vendite immobiliari con oltre 80 feature strutturali e di contesto. Il progetto risolve il problema dell'automazione della valutazione immobiliare, abilitando stime istantanee con incertezza quantificata utili per agenzie immobiliari, mutui e analisi di mercato. Repo: github.com/fedcal/ames-housing-price-pipeline.
Pipeline Architecture
- Data ingestion: 2.930 vendite × 80+ feature da Ames Housing Dataset
- Preprocessing modulare: ColumnTransformer separati per feature numeriche/ordinali/nominali
- Target log-transform: TransformedTargetRegressor con
log1pper ridurre skew prezzi - K-fold CV (K=5) con tuning iperparametri
- Confronto modelli: XGBoost vs Ridge vs Random Forest
- API di inferenza: funzione
predict_price()+ CLIames-train --quick
Test Set Results
| Modello | RMSE | MAE | R² | MAPE |
|---|---|---|---|---|
| XGBoost | $18.350 | $11.939 | 0.9471 | 7.19% |
| Ridge Regression | $18.509 | $12.470 | 0.9461 | 7.59% |
| Random Forest | $20.825 | $13.265 | 0.9318 | 7.90% |
XGBoost è il modello migliore con un errore medio percentuale (MAPE) inferiore al 7.2% - un livello di accuratezza spendibile in scenari di pre-screening per perizie immobiliari.
Use Case Business
Sistema di valutazione automatizzata per agenzie immobiliari, banche e fintech che effettuano underwriting mutui. Permette di generare istantaneamente una stima di prezzo con bande di confidenza documentate, riducendo il tempo di pre-screening da ore a millisecondi e fornendo un baseline oggettivo confrontabile con le perizie umane.
Inclusive educational material included
Il repository include 5 guide teoriche complete che coprono regressione e log-target, regolarizzazione (Ridge/Lasso/ElasticNet), modelli ad albero e boosting, metriche di regressione (RMSE/MAE/R²/MAPE) e prevenzione del data leakage nel design di pipeline ML. È pensato per essere riproducibile e utilizzato come template per altri progetti di previsione su dati tabulari.
Full technology stack
| Level | Technology | Annotation |
|---|---|---|
| Linguaggio | Python 3.11–3.13 | - |
| ML core | scikit-learn (Pipeline, ColumnTransformer, K-fold CV) | - |
| Modelli | XGBoost (champion), Ridge (baseline), Random Forest | - |
| Target Transform | TransformedTargetRegressor con log1p (gestione skew prezzi) | - |
| Notebook | Jupyter (5 quaderni teorici sequenziali) | - |
| Documentazione | Jekyll + Just-the-Docs (GitHub Pages) | - |
| CI/CD | GitHub Actions (test + deploy docs) | - |


