SPB Git

spb/wp3_uqo Public

UQO Working Paper No. 3 — Hedonic housing price models for the US: parametric, quantile, and machine-learning approaches.

TeX 77.8% Python 22.1%
1.9 KB · 59 lines python
Raw Blame History
1# Author: Simon-Pierre Boucher — contact@spboucher.ai2#3"""Loaders for the processed datasets and stored result pickles."""45import pickle67import pandas as pd89from . import config101112def load_analytical_sample() -> pd.DataFrame:13    """Return the analytical sample (788,842 listings x 68 engineered columns)."""14    return pd.read_pickle(config.ANALYTICAL_SAMPLE)151617def load_model_data() -> dict:18    """Return model-ready data: standardized X_const, y_clean, df_clean, OLS results."""19    with open(config.MODEL_DATA, "rb") as f:20        return pickle.load(f)212223def load_shap_data() -> dict:24    """Return SHAP values for the 10,000-observation XGBoost explanation sample."""25    with open(config.SHAP_DATA, "rb") as f:26        return pickle.load(f)272829def load_result(name: str) -> dict:30    """Load a stored result pickle from results/ by file name (with or without .pkl)."""31    if not name.endswith(".pkl"):32        name += ".pkl"33    with open(config.RESULTS_DIR / name, "rb") as f:34        return pickle.load(f)353637def build_feature_matrix(df: pd.DataFrame):38    """Build the 62-regressor design matrix used by the tree models and FE OLS.3940    Returns41    -------42    X_full : pd.DataFrame43        Base features plus one-hot categorical dummies (drop-first).44    parts : dict45        Column groups: 'region_dummies', 'pure_categorical_dummies',46        and the raw dummy frame under 'cat_dummies'.47    """48    cat_dummies = pd.get_dummies(df[config.CATEGORICAL_COLS], drop_first=True).astype(int)49    region_cols = [c for c in cat_dummies.columns if c.startswith("region_")]50    pure_cat_cols = [c for c in cat_dummies.columns if not c.startswith("region_")]5152    X_full = pd.concat([df[config.ALL_BASE_FEATS], cat_dummies], axis=1)53    parts = {54        "cat_dummies": cat_dummies,55        "region_dummies": region_cols,56        "pure_categorical_dummies": pure_cat_cols,57    }58    return X_full, parts59