DISCOVER: A Solver for Distributional Counterfactual Explanations

Yikai Gu, Lele Cao, Bo Zhao, Lei Lei, Lei You
3/17/2026
cs.LG

Official code: understanding-ml/DCE (2 stars, last commit 2026-02-12).

Abstract

Counterfactual explanations (CE) explain model decisions by identifying input modifications that lead to different predictions. Most existing methods operate at the instance level. Distributional Counterfactual Explanations (DCE) extend this setting by optimizing an optimal transport objective that balances proximity to a factual input distribution and alignment to a target output distribution, with statistical certification via chance constrained bounds. However, DCE relies on gradient based optimization, while many real-world tabular pipelines are dominated by non-differentiable models. We propose DISCOVER, a model-agnostic solver for distributional counterfactual explanations. DISCOVER preserves the original DCE objective and certification while replacing gradient descent with a sparse propose-and-select search paradigm. It exploits a sample-wise decomposition of the transport objective to compute per-row impact scores and enforce a top-$k$ intervention budget, focusing edits on the most influential samples. To guide candidate generation without predictor gradients, DISCOVER introduces an OT-guided cone sampling primitive driven by input-side transport geometry. Experiments on multiple tabular datasets demonstrate strong joint alignment of input and output distributions, extending distributional counterfactual reasoning to modern black box learning pipelines. A code repository is available at https://github.com/understanding-ml/DCE.

View on arXivView PDF

Code Implementations(1)

The official repository of distributional counterfactual explanations

20Python, Jupyter NotebookMay 23, 20248 months ago

Similar Papers

Cite this paper

@article{gu2026discover,
  title  = {DISCOVER: A Solver for Distributional Counterfactual Explanations},
  author = {Yikai Gu and Lele Cao and Bo Zhao and Lei Lei and Lei You},
  year   = {2026},
  eprint = {2603.16436},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2603.16436v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2603.16436.svg)](https://codeofpaper.com/paper/2603.16436)

Discussion