Home

Awesome

Symbolic Pursuit

Github for the NIPS 2020 paper "Learning outside the black-box: at the pursuit of interpretable models"

Usage

To build a symbolic regressor for a given dataset and a given model (or a given model type), the following command can be used :

 python3 build_interpreter.py [-h] [--dataset DATASET] [--test_ratio TEST_RATIO]
                            [--model MODEL] [--model_type MODEL_TYPE]
                            [--verbosity VERBOSITY] [--loss_tol LOSS_TOL]
                            [--ratio_tol RATIO_TOL] [--maxiter MAXITER]
                            [--eps EPS] [--random_seed RANDOM_SEED]

For example, if one would like to train a MLP one the wine-quality-red dataset and then fit a symbolic regressor with random seed 27, one can use the command

python3 build_interpreter --dataset wine-quality-red --model_type MLP --random_seed 27

For more details on how to use the module in general, see the 3 enclosed notebooks.

1. Building a Symbolic Regressor
2. Symbolic Pursuit vs LIME
3. Synthetic experiments with Symbolic Pursuit

Dependencies

NameVersion
cite2c0.2.1
joblib0.17.0
jupyter1.0.0
lime0.2.0.1
numpy1.19.1
python3.7.9
scikit-learn0.23.2
sympy1.6.2
xgboost1.2.1

References

In our experiments, we used implementations of LIME, SHAP and pysymbolic