Skip to main content

PySLISE Banner Image
PyPI Documentation Tests License: MIT Binder

SLISE - Sparse Linear Subset Explanations

Python implementation of the SLISE algorithm. The SLISE algorithm can be used for both robust regression and to explain outcomes from black box models. For more details see the conference paper, the robust regression paper, or the local explanation paper. Alternatively for a more informal overview see the presentation, or the poster. Finally, for learning to use the python package there are several examples and the documentation.

Björklund A., Henelius A., Oikarinen E., Kallonen K., Puolamäki K. (2019)
Sparse Robust Regression for Explaining Classifiers.
Discovery Science (DS 2019).
Lecture Notes in Computer Science, vol 11828, Springer.
https://doi.org/10.1007/978-3-030-33778-0_27

Björklund A., Henelius A., Oikarinen E., Kallonen K., Puolamäki K. (2022).
Robust regression via error tolerance.
Data Mining and Knowledge Discovery.
https://doi.org/10.1007/s10618-022-00819-2

Björklund A., Henelius A., Oikarinen E., Kallonen K., Puolamäki K. (2023)
Explaining any black box model using real data.
Frontiers in Computer Science 5:1143904.
https://doi.org/10.3389/fcomp.2023.1143904

The idea

In robust regression we fit regression models that can handle data that contains outliers (see the example below for why outliers are problematic for normal regression). SLISE accomplishes this by fitting a model such that the largest possible subset of the data items have an error less than a given value. All items with an error larger than that are considered potential outliers and do not affect the resulting model.

SLISE can also be used to provide local model-agnostic explanations for outcomes from black box models. To do this we replace the ground truth response vector with the predictions from the complex model. Furthermore, we force the model to fit a selected item (making the explanation local). This gives us a local approximation of the complex model with a simpler linear model (this is similar to, e.g., LIME and SHAP). In contrast to other methods SLISE creates explanations using real data (not some discretised and randomly sampled data) so we can be sure that all inputs are valid (i.e. in the correct data manifold, and follows the constraints used to generate the data, e.g., the laws of physics).

Installation

To install this package just run:

pip install slise

Or install the latest version directly from GitHub:

pip install git+https://github.com/edahelsinki/pyslise

Alternatively you can download the repo and run python -m build to build a wheel, or pip install . to install it locally.

Numba

SLISE uses Numba to speed up the calculations. You might want to install the optional libraries to get the most out of Numba:

pip install "slise[tbb]"

Other implementations

The (original) R implementation can be found here.

Examples

Here are two quick examples of SLISE in action. For more detailed examples, with descriptions on how to create and interpret them, see the examples directory.

Example of Robust Regression
SLISE is a robust regression algorithm, which means that it is able to handle outliers. This is in contrast to, e.g., ordinary least-squares regression, which gives skewed results when outliers are present.

 

Example of Explanation
SLISE can also be used to explain outcomes from black box models by locally approximating the complex models with a simpler linear model.

Dependencies

This implementation requires Python 3 and the following packages:

  • matplotlib
  • numba
  • numpy
  • PyLBFGS
  • scipy

Release files for slise 2.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for slise 2.2.4
File Size Uploaded
slise-2.2.4.tar.gz 32.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for slise 2.2.4
File Interpreter ABI Platform
slise-2.2.4-py3-none-any.whl Python 3 none any Details

Total release size: 62.0 kB

Release files / slise-2.2.4.tar.gz

Download URL slise-2.2.4.tar.gz
Size 32.3 kB
Tags Source
SHA-256 checksum
How to use checksums
c6dbece99029f6ead584aa985b7730f2142e9e3ea93ea1311922d0fa1a8c4b96
BLAKE2b-256 checksum
How to use checksums
0daed377c8cf8a3ba04ec717b56136f65290c73ba1ba2d91e117b6a321e51917
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.3

Release files / slise-2.2.4-py3-none-any.whl

Download URL slise-2.2.4-py3-none-any.whl
Size 29.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2b42ff82a997148db192ee448b3a377487fefd1dcb326cef1fa9e0784d47da13
BLAKE2b-256 checksum
How to use checksums
ad0c3dd6ce6a2316e0ad4cf797f21ccefcfb83dec84c78b9e44e115be6b33c81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

2.2.4 This release

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page