PDP report
target income>50K · 12 features · 6 plotted
1 · Overview — where to look
An additive surrogate read off the global curves reproduces 72.5% of the model's predicted variance; adding the regional plots kept by the decision sequence, 86.0%.
Each point is a feature: importance (x) against heterogeneity (y). Bottom-left is ignorable; bottom-right is important and fully described by its mean effect; the top-right corner — important and heterogeneous — is where the mean hides something. An arrow marks each split the decision sequence accepted: from the feature's global point to its weighted-mean point across the subregions.
| # | feature | importance | heterogeneity | #regions | regional analysis |
|---|---|---|---|---|---|
| 1 | capital-gain | 0.1096 | 0.1621 | 7 | split into 4 regions → |
| 2 | age | 0.0709 | 0.0862 | 5 | split found — rejected by the decision sequence → |
| 3 | education-num | 0.0699 | 0.0404 | 7 | split into 4 regions → |
| 4 | capital-loss | 0.0659 | 0.0836 | 7 | split into 4 regions → |
| 5 | relationship | 0.0525 | 0.0561 | 5 | split found — rejected by the decision sequence → |
| 6 | marital-status | 0.0518 | 0.0542 | · | not plotted (below the coverage cut) |
| 7 | occupation | 0.0401 | 0.0480 | · | not plotted (below the coverage cut) |
| 8 | hours-per-week | 0.0351 | 0.0448 | 7 | split into 4 regions → |
| 9 | sex | 0.0155 | 0.0246 | · | not plotted (below the coverage cut) |
| 10 | workclass | 0.0111 | 0.0209 | · | not plotted (below the coverage cut) |
| 11 | race | 0.0066 | 0.0117 | · | not plotted (below the coverage cut) |
| 12 | native-country | 0.0059 | 0.0109 | · | not plotted (below the coverage cut) |
The plotted features carry 75% of the total importance mass (target 80%, ceiling top_k = 5).
The decision sequence. Starting from the global curves, each round applies the split with the largest explained-variance gain, measured on top of the splits above it, and stops when no remaining split adds at least 1.0%. A real split (its heterogeneity does drop) can still add nothing — or even hurt, by double-counting — when its variance is already explained by an earlier split.
| step | regions | heterogeneity | explained variance |
|---|---|---|---|
| global effects (GAM) | · | · | 72.5% |
| + split education-num (on age, capital-gain, marital-status) | 4 | 0.069 → 0.040 | +7.9% → 80.4% |
| + split capital-gain (on age, education-num, marital-status) | 4 | 0.254 → 0.162 | +2.9% → 83.2% |
| + split capital-loss (on age, capital-gain, marital-status) | 4 | 0.108 → 0.084 | +1.7% → 85.0% |
| + split hours-per-week (on age, capital-gain, marital-status) | 4 | 0.064 → 0.045 | +1.0% → 86.0% |
| rejected · age (on hours-per-week, marital-status) | 3 | 0.086 → 0.055 | +0.7% — below the 1.0% threshold |
| rejected · relationship (on age, marital-status) | 3 | 0.056 → 0.046 | +0.3% — below the 1.0% threshold |
Bar view — importance and heterogeneity
2 · Regional analysis — the final CALM
The selected snapshot: global effects everywhere except the accepted splits. Features in descending importance — a split feature enters as one group at the instance-weighted mean of its subregions. The split features' global counterparts are in the baseline section at the end.
2.1 · capital-gain
Split on age, education-num, marital-status into 4 regions — worth +2.9% of explained variance on top of the splits above it; importance and heterogeneity here are the instance-weighted means over the subregions. The global counterpart is in the baseline.
Partition tree
Feature 8 - Full partition tree:
🌳 Full Tree Structure:
───────────────────────
capital-gain 🔹 [id: 0 | heter: 0.25 | inst: 5000 | w: 1.00]
marital-status = Married-civ-spouse 🔹 [id: 1 | heter: 0.23 | inst: 2319 | w: 0.46]
education-num = 13.00 🔹 [id: 2 | heter: 0.17 | inst: 436 | w: 0.09]
education-num ∈ {1.00, 2.00, 3.00, …} (15 levels) 🔹 [id: 3 | heter: 0.22 | inst: 1883 | w: 0.38]
marital-status ∈ {Divorced, Married-spouse-absent, Never-married, …} (6 levels) 🔹 [id: 4 | heter: 0.21 | inst: 2681 | w: 0.54]
age < 20.65 🔹 [id: 5 | heter: 0.08 | inst: 304 | w: 0.06]
age ≥ 20.65 🔹 [id: 6 | heter: 0.12 | inst: 2377 | w: 0.48]
--------------------------------------------------
Feature 8 - Statistics per tree level:
🌳 Tree Summary:
─────────────────
Level 0🔹heter: 0.25
Level 1🔹heter: 0.22 | 🔻0.04 (14.10%)
Level 2🔹heter: 0.16 | 🔻0.06 (25.85%)
2.2 · age
Global effect
Regional effects
A split on hours-per-week, marital-status into 3 regions was found (heterogeneity 0.086 → 0.055), but the decision sequence skips it: it adds only +0.7%, below the 1.0% threshold. The regional plots are omitted; reproduce them with find_regions.
2.3 · education-num
Split on age, capital-gain, marital-status into 4 regions — worth +7.9% of explained variance on top of the splits above it; importance and heterogeneity here are the instance-weighted means over the subregions. The global counterpart is in the baseline.
Partition tree
Feature 2 - Full partition tree:
🌳 Full Tree Structure:
───────────────────────
education-num 🔹 [id: 0 | heter: 0.07 | inst: 5000 | w: 1.00]
marital-status = Married-civ-spouse 🔹 [id: 1 | heter: 0.07 | inst: 2319 | w: 0.46]
capital-gain < 4999.95 🔹 [id: 2 | heter: 0.06 | inst: 2115 | w: 0.42]
capital-gain ≥ 4999.95 🔹 [id: 3 | heter: 0.01 | inst: 204 | w: 0.04]
marital-status ∈ {Divorced, Married-spouse-absent, Never-married, …} (6 levels) 🔹 [id: 4 | heter: 0.04 | inst: 2681 | w: 0.54]
age < 31.60 🔹 [id: 5 | heter: 0.01 | inst: 1319 | w: 0.26]
age ≥ 31.60 🔹 [id: 6 | heter: 0.05 | inst: 1362 | w: 0.27]
--------------------------------------------------
Feature 2 - Statistics per tree level:
🌳 Tree Summary:
─────────────────
Level 0🔹heter: 0.07
Level 1🔹heter: 0.05 | 🔻0.02 (27.01%)
Level 2🔹heter: 0.04 | 🔻0.01 (19.91%)
2.4 · capital-loss
Split on age, capital-gain, marital-status into 4 regions — worth +1.7% of explained variance on top of the splits above it; importance and heterogeneity here are the instance-weighted means over the subregions. The global counterpart is in the baseline.
Partition tree
Feature 9 - Full partition tree:
🌳 Full Tree Structure:
───────────────────────
capital-loss 🔹 [id: 0 | heter: 0.11 | inst: 5000 | w: 1.00]
marital-status = Married-civ-spouse 🔹 [id: 1 | heter: 0.10 | inst: 2319 | w: 0.46]
capital-gain < 4999.95 🔹 [id: 2 | heter: 0.10 | inst: 2115 | w: 0.42]
capital-gain ≥ 4999.95 🔹 [id: 3 | heter: 0.05 | inst: 204 | w: 0.04]
marital-status ∈ {Divorced, Married-spouse-absent, Never-married, …} (6 levels) 🔹 [id: 4 | heter: 0.10 | inst: 2681 | w: 0.54]
age < 24.30 🔹 [id: 5 | heter: 0.05 | inst: 733 | w: 0.15]
age ≥ 24.30 🔹 [id: 6 | heter: 0.08 | inst: 1948 | w: 0.39]
--------------------------------------------------
Feature 9 - Statistics per tree level:
🌳 Tree Summary:
─────────────────
Level 0🔹heter: 0.11
Level 1🔹heter: 0.10 | 🔻0.01 (7.28%)
Level 2🔹heter: 0.08 | 🔻0.02 (16.62%)
the feature is constant inside this region — no curve to draw
2.5 · relationship
Global effect
Regional effects
A split on age, marital-status into 3 regions was found (heterogeneity 0.056 → 0.046), but the decision sequence skips it: it adds only +0.3%, below the 1.0% threshold. The regional plots are omitted; reproduce them with find_regions.
2.6 · hours-per-week
Split on age, capital-gain, marital-status into 4 regions — worth +1.0% of explained variance on top of the splits above it; importance and heterogeneity here are the instance-weighted means over the subregions. The global counterpart is in the baseline.
Partition tree
Feature 10 - Full partition tree:
🌳 Full Tree Structure:
───────────────────────
hours-per-week 🔹 [id: 0 | heter: 0.06 | inst: 5000 | w: 1.00]
marital-status = Married-civ-spouse 🔹 [id: 1 | heter: 0.07 | inst: 2319 | w: 0.46]
capital-gain < 4999.95 🔹 [id: 2 | heter: 0.07 | inst: 2115 | w: 0.42]
capital-gain ≥ 4999.95 🔹 [id: 3 | heter: 0.01 | inst: 204 | w: 0.04]
marital-status ∈ {Divorced, Married-spouse-absent, Never-married, …} (6 levels) 🔹 [id: 4 | heter: 0.04 | inst: 2681 | w: 0.54]
age < 24.30 🔹 [id: 5 | heter: 0.00 | inst: 733 | w: 0.15]
age ≥ 24.30 🔹 [id: 6 | heter: 0.04 | inst: 1948 | w: 0.39]
--------------------------------------------------
Feature 10 - Statistics per tree level:
🌳 Tree Summary:
─────────────────
Level 0🔹heter: 0.06
Level 1🔹heter: 0.05 | 🔻0.01 (20.00%)
Level 2🔹heter: 0.04 | 🔻0.01 (12.24%)
3 · Global baseline — without regions
What you would believe about the split features without the regional analysis: their global mean effects, with the heterogeneity the accepted splits just explained still hiding inside the band. Compare with their subregions in the regional analysis above.