Demonstration 1 of 1
Raw importance against null importance, by null percentile
Which columns does each screen keep, and at what null percentile does a strict screen start discarding real signal?
A column with many distinct values offers a tree many places to split, so it earns importance even when it carries nothing: here the noise and ID-like columns outrank the weak binary features that really matter. Shuffling the labels measures what each column earns by chance, so comparing a column with its own null removes that advantage. Raising the percentile removes more chance winners but starts to cut weak real columns.
keep j iff I_j > N_j^((q))
Scroll sideways for the whole equation
I_j is column j's importance on the real labels, N_j^(q) the q-th percentile of its importance over the label permutations, and a column is kept when I_j exceeds N_j^(q). The percentile rule is a screening heuristic, not a probability that the column is real.
Predict first. A raw-importance ranking and a 75th-percentile null screen each keep the same number of columns. Which table scores higher on new rows?
Choose an example
Scroll sideways for the whole figure
Constructed example: six seeded synthetic datasets, a random forest and twelve label permutations, measured by the chapter activity.
Calculated values
- Columns kept
- 5.8
- Weak real kept (of 4)
- 2.7
- Noise kept (of 18)
- 0.2
- Null screen AUC
- 0.786
- Raw top-k AUC
- 0.759
- All columns AUC
- 0.767
At the 75th null percentile the screen keeps 5.8 columns on average: 3.0 of 3 strong, 2.7 of 4 weak, 0.2 of 18 noise. The same number chosen by raw importance rank holds 3.0 of 3 strong, 0.0 of 4 weak, 2.8 of 18 noise. Scored on new rows the null screen reaches 0.786, the raw top columns 0.759 and the full table 0.767, so 0.786 - 0.767 = 0.019 is the change from screening with the null (negative means it cost AUC).
Worked steps
- Null screen: 0.786 - 0.767 = 0.019 AUC against keeping every column.
- Raw ranking of the same size: 0.759 - 0.767 = -0.008.
- Kept by the null screen: 3.0 of 3 strong, 2.7 of 4 weak, 0.2 of 18 noise.
- Kept by the raw ranking: 3.0 of 3 strong, 0.0 of 4 weak, 2.8 of 18 noise.
Use the idea
Fit the screen on development rows only, compare each column with its own permutation null, choose the percentile by held-out loss rather than by habit, and assess the selected table separately. Keep a raw-rank selection of the same size as the comparison.
Where the conclusion applies
Constructed data and one forest as the importance model; the chapter's BorutaShap and LightGBM are not installed. With only 12 permutations the 99th percentile is close to the largest null value. In this generator the real labels also shrink the importance of the noise columns below their null, so the null screen is conservative; differences in AUC between percentiles are small and are properties of this generator.
Check your understanding: The 99th percentile keeps fewer noise columns than the median. Why does it score lower on new rows?
Chapter 29 source: section "Null Importance: Distinguishing Real Signal from Chance Correlation".