traceot
Interpretable distributional modelling for large tabular data, built on optimal transport. Rust core, Python interface.
Learn
- ADOPT, explained: what optimal-transport regression is, how additive transport works, and our reproduction of the ADOPT paper's simulations.
- TRACE, beside explainable boosting: what EBMs are, how TRACE models a whole conditional distribution, and the leakage and oddness checks.
- TRACE theory: L-moments, per-feature attribution, monotonicity, why a tail feature can still be missed, shift explanations, distribution-valued rows, and Wasserstein-robust fits.
- Explaining a shift: how a change in a distribution splits into composition and structure, per channel and per feature, and what the gap between the two averages means.
- Research landscape and research board v4: where TRACE falls short, why, and the ranked fixes borrowed from physics, fluids, vision, biology, econometrics and statistics.
Reports
- ADOPT reproduction table (paper vs ours)
- Reproduction notes: every ambiguity and the choice we made
- Benchmarks: wall time and peak memory
- TRACE design: model, algorithm, order invariance, checks
- TRACE simulations: criteria, then results
Roadmap
- Milestone 1 (this release): faithful ADOPT (Song & Müller, AISTATS 2026) with a numpy reference and a matching Rust core.
- TRACE v0 (unpublished): an EBM-style additive model of the conditional quantile function, with location, scale and shape channels, oddness scores, and leakage and placebo checks. ADOPT stays in the tree as a reproduction only. Designed for millions of rows. See the learning page.
Source: github.com/jgridifier/traceot · MIT licence · personal research project · all examples use simulated data.