One Permutation Is All You Need: Fast, Deterministic Feature Importance and Model Stress-Testing
Abstract
Reliable estimation of feature contributions in machine learning models is essential for transparency, algorithmic fairness, and regulatory compliance. While permutation feature importance is widely used, classical implementations rely on repeated Monte Carlo shuffling, introducing significant computational overhead and stochastic instability. In this paper, we show that replacing random permutations with a single, max-min rank-optimal deterministic permutation maintains or improves correlation with ground-truth importance while eliminating estimation variance and reducing complexity from to . Under location-scale feature distributions, we formally prove exact recovery of scale-adjusted linear regression coefficients, alongside improved importance estimation under concave model sensitivity. We extend this deterministic framework along two complementary dimensions. First, Systemic Feature Importance (SFI) integrates empirical feature correlations to quantify indirect feature reliance through proxy variables. Second, Importance Direction extends scalar importance to a signed, directional representation by measuring concordance between covariate displacements and output shifts. Extensive empirical validation across nearly 200 simulation scenarios demonstrates superior bias-variance trade-offs in high-dimensional and low signal-to-noise regimes. Finally, two real-world credit risk case studies show how coupling SFI with Importance Direction enables practitioners and regulators to audit models for both the magnitude and net sign of hidden reliance on protected attributes, delivering a principled, transparent, and scalable framework for model governance.
Figures & tables
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor | 0.953 ± 0.008 | 0.941 ± 0.012 | 0.900 ± 0.037 | 0.910 ± 0.035 |
| Max score diff | 0.082 ± 0.019 | 0.093 ± 0.020 | 0.095 ± 0.024 | 0.091 ± 0.024 |
| Time (ms) | 24.9 ± 13.7 | 19.4 ± 10.7 | 17.1 ± 5.3 | 98.4 ± 32.4 |
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor | 0.953 ± 0.007 | 0.941 ± 0.008 | 0.899 ± 0.036 | 0.910 ± 0.034 |
| Max score diff | 0.154 ± 0.019 | 0.176 ± 0.021 | 0.173 ± 0.021 | 0.168 ± 0.023 |
| Time (ms) | 25.3 ± 13.9 | 19.7 ± 11.0 | 17.0 ± 5.1 | 98.2 ± 31.8 |
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor | 0.962 ± 0.010 | 0.947 ± 0.018 | 0.868 ± 0.052 | 0.882 ± 0.051 |
| Max score diff | 0.066 ± 0.019 | 0.067 ± 0.018 | 0.088 ± 0.026 | 0.083 ± 0.029 |
| Time (ms) | 27.1 ± 14.7 | 21.2 ± 11.5 | 26.2 ± 8.0 | 189.1 ± 60.4 |
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor | 0.953 ± 0.009 | 0.942 ± 0.013 | 0.863 ± 0.047 | 0.879 ± 0.045 |
| Max score diff | 0.153 ± 0.021 | 0.162 ± 0.020 | 0.173 ± 0.022 | 0.168 ± 0.023 |
| Time (ms) | 27.0 ± 14.6 | 20.9 ± 11.4 | 26.0 ± 7.8 | 185.1 ± 57.3 |
| Metric | Lasso Regression | Linear Regression | RF |
|---|---|---|---|
| 0.49 ± 0.10 | 0.49 ± 0.10 | 0.46 ± 0.08 | |
| MAE | 0.048 ± 0.002 | 0.048 ± 0.002 | 0.048 ± 0.002 |
| Nonzero coefficients | 11.8 ± 0.2 | 12.0 ± 0.0 | N/A |
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor. | 0.997 ± 0.001 | 0.997 ± 0.001 | 0.996 ± 0.001 | 0.996 ± 0.001 |
| Max score diff. | 0.272 ± 0.014 | 0.273 ± 0.015 | 0.271 ± 0.020 | 0.270 ± 0.019 |
| Mean score diff. | 0.045 ± 0.001 | 0.045 ± 0.002 | 0.045 ± 0.003 | 0.045 ± 0.003 |
| Time (ms) | 0.79 ± 0.01 | 0.63 ± 0.01 | 3.64 ± 0.11 | 21.42 ± 0.20 |
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor. | 0.997 ± 0.001 | 0.997 ± 0.001 | 0.996 ± 0.001 | 0.996 ± 0.001 |
| Max score diff. | 0.279 ± 0.019 | 0.279 ± 0.019 | 0.278 ± 0.023 | 0.277 ± 0.023 |
| Mean score diff. | 0.046 ± 0.003 | 0.047 ± 0.003 | 0.046 ± 0.004 | 0.046 ± 0.004 |
| Time (ms) | 0.69 ± 0.01 | 0.61 ± 0.01 | 3.50 ± 0.06 | 21.31 ± 0.28 |
| Metric | -Logistic | Logistic | RF |
|---|---|---|---|
| ROC-AUC | 0.73 ± 0.03 | 0.79 ± 0.03 | 0.79 ± 0.03 |
| Nonzero coef. | 2.2 ± 0.4 | 20 ± 0.0 | N/A |
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor. | 0.996 ± 0.002 | 0.997 ± 0.002 | 0.999 ± 0.001 | 0.998 ± 0.001 |
| Max score diff. | 0.072 ± 0.025 | 0.069 ± 0.024 | 0.035 ± 0.020 | 0.044 ± 0.021 |
| Mean score diff. | 0.007 ± 0.003 | 0.007 ± 0.002 | 0.003 ± 0.002 | 0.004 ± 0.002 |
| Time (ms) | 1.26 ± 0.03 | 1.14 ± 0.06 | 8.79 ± 0.09 | 65.05 ± 0.44 |
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor. | 0.875 ± 0.015 | 0.900 ± 0.013 | 0.806 ± 0.036 | 0.773 ± 0.077 |
| Max score diff. | 0.255 ± 0.031 | 0.200 ± 0.025 | 0.196 ± 0.053 | 0.196 ± 0.031 |
| Mean score diff. | 0.029 ± 0.002 | 0.025 ± 0.002 | 0.035 ± 0.004 | 0.036 ± 0.003 |
| Time (ms) | 1.19 ± 0.03 | 1.10 ± 0.03 | 8.73 ± 0.17 | 64.19 ± 0.70 |
Appendix figures & tables26 assets
Supplementary material from the paper’s appendix.
Appendix
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor | 0.996 ± 0.002 | 0.992 ± 0.004 | 0.900 ± 0.037 | 0.910 ± 0.035 |
| Max score diff | 0.007 ± 0.002 | 0.011 ± 0.003 | 0.095 ± 0.024 | 0.091 ± 0.024 |
| Time (ms) | 25.0 ± 13.7 | 19.3 ± 10.7 | 17.9 ± 5.4 | 104.8 ± 33.1 |
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor | 0.997 ± 0.001 | 0.993 ± 0.003 | 0.899 ± 0.036 | 0.910 ± 0.034 |
| Max score diff | 0.013 ± 0.004 | 0.015 ± 0.005 | 0.173 ± 0.021 | 0.168 ± 0.023 |
| Time (ms) | 24.1 ± 13.2 | 18.7 ± 10.3 | 17.3 ± 5.2 | 101.9 ± 32.0 |
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor | 0.991 ± 0.004 | 0.982 ± 0.008 | 0.838 ± 0.070 | 0.867 ± 0.071 |
| Max score diff | 0.017 ± 0.006 | 0.019 ± 0.005 | 0.079 ± 0.021 | 0.076 ± 0.026 |
| Time (ms) | 26.7 ± 14.4 | 20.8 ± 11.3 | 20.1 ± 6.2 | 126.6 ± 41.6 |
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor | 0.995 ± 0.002 | 0.987 ± 0.009 | 0.798 ± 0.070 | 0.837 ± 0.064 |
| Max score diff | 0.018 ± 0.004 | 0.020 ± 0.005 | 0.165 ± 0.033 | 0.156 ± 0.029 |
| Time (ms) | 26.4 ± 14.3 | 20.8 ± 11.3 | 20.0 ± 6.2 | 125.6 ± 41.6 |
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor | 0.952 ± 0.005 | 0.956 ± 0.004 | 0.943 ± 0.011 | 0.944 ± 0.011 |
| Max score diff | 0.225 ± 0.016 | 0.219 ± 0.015 | 0.472 ± 0.047 | 0.471 ± 0.045 |
| Mean score diff | 0.045 ± 0.003 | 0.044 ± 0.002 | 0.079 ± 0.008 | 0.079 ± 0.007 |
| Time (ms) | 1.60 ± 0.03 | 1.45 ± 0.03 | 5.06 ± 0.11 | 33.84 ± 0.91 |
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor | 0.997 ± 0.000 | 0.998 ± 0.000 | 0.999 ± 0.000 | 0.999 ± 0.000 |
| Max score diff | 0.185 ± 0.012 | 0.190 ± 0.015 | 0.074 ± 0.026 | 0.073 ± 0.025 |
| Mean score diff | 0.031 ± 0.002 | 0.032 ± 0.002 | 0.013 ± 0.004 | 0.013 ± 0.004 |
| Time (ms) | 0.49 ± 0.03 | 0.39 ± 0.01 | 5.80 ± 0.15 | 42.03 ± 0.99 |
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor | 1.000 ± 0.000 | 1.000 ± 0.000 | 0.996 ± 0.002 | 0.996 ± 0.002 |
| Max score diff | 0.022 ± 0.010 | 0.013 ± 0.008 | 0.077 ± 0.028 | 0.077 ± 0.028 |
| Mean score diff | 0.002 ± 0.001 | 0.001 ± 0.001 | 0.008 ± 0.003 | 0.008 ± 0.003 |
| Time (ms) | 0.82 ± 0.04 | 0.67 ± 0.01 | 5.07 ± 0.10 | 32.56 ± 0.40 |
| Metric | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| Ground-truth cor | 0.930 ± 0.014 | 0.935 ± 0.017 | 0.682 ± 0.082 | 0.658 ± 0.148 |
| Max score diff | 0.060 ± 0.009 | 0.045 ± 0.005 | 0.180 ± 0.073 | 0.191 ± 0.096 |
| Mean score diff | 0.012 ± 0.001 | 0.010 ± 0.001 | 0.042 ± 0.011 | 0.042 ± 0.013 |
| Time (ms) | 0.75 ± 0.01 | 0.66 ± 0.01 | 4.95 ± 0.08 | 32.48 ± 0.22 |
| Top 5 indices | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| 10 | 0 | 0 | 0 | |
| 0 | 10 | 0 | 0 | |
| 0 | 0 | 0 | 6 | |
| 0 | 0 | 3 | 4 | |
| 0 | 0 | 2 | 0 | |
| 0 | 0 | 1 | 0 |
| Top 5 indices | DFI-Opt | DFI-Approx | Breiman (B=1) | Breiman (B=10) |
|---|---|---|---|---|
| 10 | 10 | 0 | 0 | |
| 0 | 0 | 0 | 4 | |
| 0 | 0 | 0 | 2 | |
| 0 | 0 | 0 | 1 | |
| 0 | 0 | 0 | 1 | |
| 0 | 0 | 0 | 1 |