Ames Housing Price Pipeline
Pipeline ML end-to-end per la valutazione automatica di immobili
Pipeline ML production-ready per la previsione dei prezzi immobiliari Ames (2.930 vendite, 80+ feature). XGBoost con R² 0.947 e RMSE $18.350, K-fold tuning e API di inferenza.
Highlights
- XGBoost campione: RMSE $18.350, MAE $11.939, R² 0.9471, MAPE 7.19% sul test set
- Preprocessing modulare con transformer separati per feature numeriche, ordinali e nominali
- TransformedTargetRegressor per training in spazio log e mitigare la skew dei prezzi
- K-fold cross-validation (K=5) con tuning iperparametri riproducibile
- 5 guide teoriche su regressione, regolarizzazione, alberi, metriche e prevenzione data leakage
- API di inferenza `predict_price()` + CLI (`ames-train --quick`)
- Ogni decisione di design giustificata in documentazione (Jekyll site)
Cosa è il progetto
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.
Architettura della pipeline
- 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
Risultati sul test set
| 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.
Materiale didattico incluso
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.
Stack tecnologico completo
| Layer | Tecnologia | Note |
|---|---|---|
| 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) | — |


