house-prices-tabular-models / INTERPRETABILITY.md
t22000t's picture
v3: add SHAP + Captum IG interpretability artefacts
df1ec6d verified
|
Raw
History Blame Contribute Delete
4.47 kB
# Interpretability summary: `house_prices_8arch_interp`
## Performance ranking
| Rank | Model | Test Gini | Test MAE | A/E ratio | n params | Train time |
|---:|---|---:|---:|---:|---:|---:|
| 1 | **xgboost** | 0.2049 | 17203.89 | 0.999 | 462 | 0.4s |
| 2 | **stacked_ensemble** | 0.2049 | 17203.89 | 0.999 | 9 | 0.0s |
| 3 | **catboost** | 0.1996 | 29223.45 | 1.161 | 499 | 2.7s |
| 4 | **localglmnet** | 0.1991 | 23419.59 | 0.988 | 22,620 | 6.3s |
| 5 | **drn** | 0.1962 | 27927.62 | 0.981 | 53,010 | 6.6s |
| 6 | **cann** | 0.1941 | 24906.06 | 1.024 | 52,815 | 6.5s |
| 7 | **cann_gbm** | 0.1940 | 32932.26 | 1.193 | 52,815 | 5.8s |
| 8 | **ft_transformer** | 0.0368 | 187771.09 | 3337.260 | 483,267 | 340.8s |
| 9 | **tabm** | 0.0331 | 187802.11 | 7436.716 | 410,364 | 176.6s |
## Top-10 features per architecture
| Rank | catboost | xgboost |
|---|---|---|
| 1 | `TotalSF` (0.096) | `TotalSF` (0.138) |
| 2 | `OverallQual` (0.043) | `OverallQual` (0.103) |
| 3 | `GrLivArea` (0.043) | `GrLivArea` (0.032) |
| 4 | `YearRemodAdd` (0.038) | `YearRemodAdd` (0.025) |
| 5 | `LotArea` (0.030) | `OverallCond` (0.025) |
| 6 | `KitchenQual` (0.028) | `HouseAge` (0.021) |
| 7 | `OverallCond` (0.028) | `GarageCars` (0.020) |
| 8 | `MSZoning` (0.022) | `LotArea` (0.019) |
| 9 | `HouseAge` (0.022) | `YearBuilt` (0.012) |
| 10 | `GarageCars` (0.021) | `KitchenQual` (0.011) |
## Cross-method agreement
Features that appear in **top-5** across **every** model with importance scores:
- `GrLivArea`
- `OverallQual`
- `TotalSF`
- `YearRemodAdd`
This cross-method agreement is a strong signal - when both tree-based SHAP and gradient-based Captum IG identify the same feature as critical, the finding is unlikely to be a method-specific artefact.
## LocalGLMnet coefficient analysis
LocalGLMnet emits one row of coefficients per test record. We summarise the distribution of each feature's coefficient across the sampled test set (mean ± std):
| Feature | Mean coef | Std | Sign stability |
|---|---:|---:|---:|
| `LotArea` | 2.912e-04 | 1.847e-04 | 98% |
| `YearBuilt` | 3.377e-04 | 2.296e-04 | 99% |
| `YearRemodAdd` | 3.083e-04 | 2.715e-04 | 97% |
| `TotalBsmtSF` | 2.400e-04 | 1.464e-04 | 99% |
| `1stFlrSF` | 2.361e-04 | 1.171e-04 | 100% |
| `2ndFlrSF` | -2.467e-04 | 2.454e-04 | 96% |
| `GrLivArea` | -5.616e-05 | 1.236e-04 | 72% |
| `FullBath` | 1.693e-04 | 2.968e-04 | 86% |
| `BedroomAbvGr` | -9.640e-05 | 1.435e-04 | 80% |
| `TotRmsAbvGrd` | -1.148e-04 | 1.200e-04 | 84% |
| `GarageCars` | 3.736e-04 | 4.435e-04 | 98% |
| `GarageArea` | 2.725e-04 | 1.512e-04 | 99% |
| `OverallQual` | 1.848e-04 | 1.240e-04 | 98% |
| `OverallCond` | 2.792e-04 | 3.282e-04 | 99% |
| `TotalSF` | 2.274e-04 | 1.413e-04 | 99% |
| `HouseAge` | -3.340e-04 | 2.015e-04 | 100% |
| `LotArea_raw` | 3.759e-08 | 2.385e-08 | 98% |
| `YearBuilt_raw` | 1.106e-05 | 7.519e-06 | 99% |
| `YearRemodAdd_raw` | 1.493e-05 | 1.314e-05 | 97% |
| `TotalBsmtSF_raw` | 5.483e-07 | 3.345e-07 | 99% |
| `1stFlrSF_raw` | 6.213e-07 | 3.082e-07 | 100% |
| `2ndFlrSF_raw` | -5.686e-07 | 5.655e-07 | 96% |
| `GrLivArea_raw` | -1.075e-07 | 2.365e-07 | 72% |
| `FullBath_raw` | 3.079e-04 | 5.398e-04 | 86% |
| `BedroomAbvGr_raw` | -1.181e-04 | 1.757e-04 | 80% |
| `TotRmsAbvGrd_raw` | -7.042e-05 | 7.359e-05 | 84% |
| `GarageCars_raw` | 5.017e-04 | 5.955e-04 | 98% |
| `GarageArea_raw` | 1.298e-06 | 7.199e-07 | 99% |
| `OverallQual_raw` | 1.338e-04 | 8.976e-05 | 98% |
| `OverallCond_raw` | 2.500e-04 | 2.938e-04 | 99% |
| `TotalSF_raw` | 2.768e-07 | 1.720e-07 | 99% |
| `HouseAge_raw` | -1.091e-05 | 6.583e-06 | 100% |
_Sign stability is the fraction of test records where the coefficient has the same sign as the mean. Values close to 100% mean the model is confident about that feature's direction; values closer to 50% mean the feature's effect flips across records (which is exactly what LocalGLMnet was designed to detect)._
## Artefacts on disk
- `dashboard_dl_interpretability.html` - interactive Plotly dashboard with SHAP beeswarm plots, Captum IG heatmaps, FT-Transformer attention matrices, CANN residual histograms.
- `localglmnet_coefficients.csv` - per-test-record coefficients from LocalGLMnet (one row per test record, one column per continuous feature).
- `feature_importance.csv` - consolidated importances (CatBoost / XGBoost native importance scores).
- `drn_distributional_outputs.csv` - DRN's predictive distribution moments (mean, variance, quantiles) per test row.