CF-OPT: Counterfactual Explanations for Structured Prediction

Authors: Germain Vivier-Ardisson, Alexandre Forel, Axel Parmentier, Thibaut Vidal

ICML 2024 | Conference PDF | Archive PDF | Plain Text | LLM Run Details

Reproducibility Variable Result LLM Response
Research Type Experimental Our numerical results show that both close and plausible explanations can be obtained for problems from the recent literature.
Researcher Affiliation Academia 1CIRRELT & SCALE-AI Chair in Data-Driven Supply Chains, Department of Mathematical and Industrial Engineering, Polytechnique Montreal, Montreal, Canada 2CERMICS, École des Ponts, Marne-la-Vallée, France. Correspondence to: Germain Vivier-Ardisson <germain.vivier-ardisson@enpc.fr>.
Pseudocode Yes Our algorithm is given in Algorithm 1 in Appendix D.
Open Source Code Yes The code used to generate all the results in this paper is available publicly at https://github. com/GermainVivierArdisson/CF-OPT under an MIT license.
Open Datasets Yes We follow the experimental setting of Vlastelica et al. (2019) and used subsequently in several works (Dalle et al., 2022; Tang & Khalil, 2022; Mc Kenzie et al., 2023). The training set {xi, θi, yi}N i=1 is made of N = 10000 examples of Warcraft maps as well as their associated true costs and shortest paths.
Dataset Splits No The paper mentions 'All VAEs are trained until convergence, with early stopping to avoid overfitting', which implies a validation set was used, but it does not specify the size or percentage split for a validation dataset.
Hardware Specification Yes Our experiments are implemented in Python and run on four cores of an Intel Core i7-8565U CPU @ 1.80GHz and use 16GB RAM.
Software Dependencies No The paper mentions 'Python', 'Pytorch', 'Gurobi', and 'scipy.special package' as software used, but does not provide specific version numbers for these dependencies, making the description not fully reproducible.
Experiment Setup Yes We use a step size γ = 0.003, maximum number of iterations K = 3000, maximum number of non-improving iterations cmax = 50, and corresponding update tolerance u = 0.9.