% Auto-generated (revision: recomputed on identical folds) \begin{table}[htbp] \centering \begin{threeparttable} \caption{Feature Ablation: Out-of-Sample $R^2$ by Feature Layer} \label{tab:ablation} \begin{tabular}{@{}lcccc@{}} \toprule Feature set & \# feats & OLS & GBM & Blend \\ \midrule Structural + amenity & 24 & 0.521 & 0.692 & --- \\ \quad + Rooms + listing & 38 & 0.619 & 0.729 & --- \\ \quad + Text (LLM) & 56 & 0.628 & 0.743 & 0.760 \\ \quad + Vision (façade) & 77 & 0.686 & 0.770 & 0.779 \\ \bottomrule \end{tabular} \begin{tablenotes}[flushleft] \footnotesize \item \textit{Notes:} Each row adds a feature layer to the row above (nested). Entries are out-of-sample $R^2$ on $\ln(\text{Price})$ from 5-fold cross-validation with a common seed. ``\# feats'' counts numeric/indicator features before the city, type, and source fixed effects (added in every specification). The blend averages the robust neural network and gradient boosting and is reported where both were trained. GBM handles missing living area natively; OLS uses within-type median imputation. The gain from a layer is the difference between consecutive rows; the room and listing block includes the Realtor.ca room detail and therefore also carries platform identity. \end{tablenotes} \end{threeparttable} \end{table}