Leaf Values as Coordinates: Exact Contrastive Explanation for Gradient-Boosted Ensembles
Organizations: Independent Researcher
Abstract
A gradient-boosted ensemble predicts by summing one leaf value per tree. Read those values as coordinates rather than as intermediate results, and every instance becomes a point in R^M on which the model acts linearly: the score is the sum of the coordinates. This small change of view makes contrastive explanation exact. The difference between two instances is a vector that is identically zero wherever they share a leaf, so the gap between a rejected applicant and an accepted one is carried by a handful of coordinates, each traceable to a real split in a real tree. Nothing is fitted, sampled, or assumed additive in features -- the additivity is already there, in the right space. We build a recourse method on this representation and evaluate it on five tabular datasets under repeated cross-validation. Its recommendation reconstructs the model's own decision to 6.2 x 10^-15, so an auditor can re-check the arithmetic without the model. On the credit datasets it is Pareto-non-dominated on effort against realism. And when recommendations are restricted to changes the subject could actually make -- not their age, not a settled delinquency -- it retains 58% of its validity where the strongest baseline retains 41%, a distinction the standard evaluation cannot see because it never asks whether a recommendation can be carried out.
Figures & tables
| Feature | Query | Comp. | Threshold | (trees) | Solo |
| NetFractionRevolvingBurden | 81 | 0 | 31.5 | +2.260 (75) | +1.110 |
| AverageMInFile | 38 | 74 | 53.1 | +0.182 (14) | +0.291 |
| MSinceOldestTradeOpen | 85 | 160 | 120.5 | +0.197 (16) | +0.081 |
| NumInstallTradesWBalance | 1 | 2 | 2.0 | +0.050 (2) | +0.029 |
| NetFractionInstallBurden | — | 84 | 74.6 | +0.045 (11) | +0.013 |
| sum of entries | |||||
| Method | FICO HELOC | Taiwan Credit | Adult Income |
|---|---|---|---|
| unconstrained | |||
| COACH | 0.967 | 1.000 | 1.000 |
| NICE | 0.978 | 1.000 | 1.000 |
| FACE | 0.922 | 0.997 | 1.000 |
| FeatureTweaking | 0.782 | 1.000 | 1.000 |
| feasible changes only | |||