Immobiliare · XGBoost
Pricing Predittivo
Pricing Predittivo
per Affitti Brevi
Regressione XGBoost con hyperparameter tuning e SHAP explainability per predire il prezzo per notte ottimale. Feature engineering su 24 variabili immobiliari e di localizzazione, modellate su dataset pubblici del settore short-term rental.
XGBoost
Python
Feature Engineering
GridSearchCV
SHAP
0.89R² Test
€12.4MAE medio
3.2kListings
24Feature
Actual vs Predicted — prezzi per notte (€)
Feature Importance (SHAP)
Numero di camere31.2%
Quartiere / zona25.4%
Rating recensioni17.8%
Distanza dal centro12.9%
N° di servizi (amenities)7.5%
Altre feature5.2%
Snippet chiave
import xgboost as xgb
from sklearn.model_selection import GridSearchCV, StratifiedKFold
import shap
# Hyperparameter tuning
params = {'max_depth': [4,6,8], 'n_estimators': [100,200], 'learning_rate': [0.05,0.1]}
xgb_model = xgb.XGBRegressor(random_state=42)
grid = GridSearchCV(xgb_model, params, cv=5, scoring='r2')
grid.fit(X_train, y_train)
# SHAP explainability
explainer = shap.TreeExplainer(grid.best_estimator_)
shap_values = explainer.shap_values(X_test)
from sklearn.model_selection import GridSearchCV, StratifiedKFold
import shap
# Hyperparameter tuning
params = {'max_depth': [4,6,8], 'n_estimators': [100,200], 'learning_rate': [0.05,0.1]}
xgb_model = xgb.XGBRegressor(random_state=42)
grid = GridSearchCV(xgb_model, params, cv=5, scoring='r2')
grid.fit(X_train, y_train)
# SHAP explainability
explainer = shap.TreeExplainer(grid.best_estimator_)
shap_values = explainer.shap_values(X_test)
Risultati e conclusioni
XGBoost con tuning raggiunge un R² di 0.89 sul test set stratificato — significativamente superiore al baseline con regressione lineare (R² = 0.71).
L'analisi SHAP rivela che il numero di camere e la zona geografica dominano la predizione, confermando l'importanza della localizzazione nel pricing immobiliare.
Il modello è integrabile in strumenti di revenue management per property manager e host professionali, fornendo pricing dinamico basato su caratteristiche dell'immobile e benchmark di zona.