slisemap

SLISEMAP: Combining supervised dimensionality reduction with local explanations

https://github.com/edahelsinki/slisemap

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 14 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.4%) to scientific vocabulary

Keywords

dimensionality-reduction explainable-ai global-explanation local-explanations machine-learning manifold-visualization model-agnostic-explanations python pytorch research research-paper supervised-dimensionality-reduction xai
Last synced: 6 months ago · JSON representation ·

Repository

SLISEMAP: Combining supervised dimensionality reduction with local explanations

Basic Info
Statistics
  • Stars: 20
  • Watchers: 3
  • Forks: 3
  • Open Issues: 0
  • Releases: 15
Topics
dimensionality-reduction explainable-ai global-explanation local-explanations machine-learning manifold-visualization model-agnostic-explanations python pytorch research research-paper supervised-dimensionality-reduction xai
Created almost 4 years ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

README.md

PyPI Documentation Tests Licence: MIT Code style: black Binder DOI

SLISEMAP: Combine supervised dimensionality reduction with local explanations

SLISEMAP is a supervised dimensionality reduction method that takes data, in the form of vectors, and predictions from a "black box" regression or classification model as input. SLISEMAP then simultaneously finds local explanations for all data items and builds a (typically) two-dimensional global visualisation of the black box model such that data items with similar local explanations are projected nearby. The explanations consist of interpretable models that locally approximate the "black box" model.

SLISEMAP is implemented in Python using PyTorch for efficient optimisation, and optional GPU-acceleration. For more information see the papers, the examples, or the documentation.

This library also includes the faster SLIPMAP variant, which uses "prototypes" to speed up the calculations (linear time and memory complexity instead of quadratic). SLIPMAP is largely compatible with SLISEMAP, just change the class name (Slisemap to Slipmap, see example below).

Citations

The full SLISEMAP paper (arXiv, supplements, and slides):

Björklund, A., Mäkelä, J., Puolamäki, K. (2023).
SLISEMAP: Supervised dimensionality reduction through local explanations.
Machine Learning 112, 1-43. DOI: 10.1007/s10994-022-06261-1

The new SLIPMAP paper (supplements and slides):

Björklund, A., Seppäläinen, L., Puolamäki, K. (2024).
SLIPMAP: Fast and Robust Manifold Visualisation for Explainable AI.
Advances in Intelligent Data Analysis XXII, IDA 2024, pp. 223-235. Lecture Notes in Computer Science, vol 14642. DOI: 10.1007/978-3-031-58553-1_18 (Best Paper Award)

Applying SLISEMAP on physical data (data and source code):

Seppäläinen, L., Björklund, A., Besel, V., Puolamäki, K. (2024).
Using SLISEMAP to interpret physical data.
PLOS ONE 19, e0297714. DOI: 10.1371/journal.pone.0297714

The short demo paper (video and slides):

Björklund, A., Mäkelä, J., Puolamäki, K. (2023).
SLISEMAP: Combining Supervised Dimensionality Reduction with Local Explanations.
Machine Learning and Knowledge Discovery in Databases, ECML PKDD 2022. Lecture Notes in Computer Science, vol 13718. DOI: 10.1007/978-3-031-26422-1_41.

Installation

To install the package just run:

sh pip install slisemap

Or install the latest version directly from GitHub:

sh pip install git+https://github.com/edahelsinki/slisemap

To use the built-in hyperparameter tuning you also need scikit-optimize, which is automatically installed if you do:

sh pip install slisemap[tuning]

PyTorch

Since SLISEMAP utilises PyTorch for efficient calculations, you might want to install a version that is optimised for your hardware. See https://pytorch.org/get-started/locally for details.

Example

```python import numpy as np from slisemap import Slisemap

X = np.array(...) y = np.array(...) sm = Slisemap(X, y, radius=3.5, lasso=0.01) sm.optimise() sm.plot(clusters=5, bars=5) ``` Example plot of the results from using SLISEMAP on the *Auto MPG* dataset

To use the faster SLIPMAP variant just replace the relevant lines:

python from slisemap import Slipmap sm = Slipmap(X, y, radius=2.0, lasso=0.01)

See the examples for more detailed examples, and the documentation for more detailed instructions.

Owner

  • Name: EDA Helsinki
  • Login: edahelsinki
  • Kind: organization

The Exploratory Data Analysis group, lead by Associate Professor Kai Puolamäki, is located at University of Helsinki (CS and INAR)

Citation (CITATIONS.bib)

@inproceedings{bjorklund2024slipmap,
  title      = {{{SLIPMAP}}: {{Fast}} and {{Robust Manifold Visualisation}} for {{Explainable AI}}},
  shorttitle = {{{SLIPMAP}}},
  booktitle  = {Advances in {{Intelligent Data Analysis XXII}}},
  author     = {Bj{\"o}rklund, Anton and Sepp{\"a}l{\"a}inen, Lauri and Puolam{\"a}ki, Kai},
  year       = {2024},
  series     = {Lecture {{Notes}} in {{Computer Science}}},
  volume     = {14642},
  pages      = {223--235},
  publisher  = {Springer Nature Switzerland},
  address    = {Cham},
  doi        = {10.1007/978-3-031-58553-1_18},
  isbn       = {978-3-031-58553-1}
}

@article{bjorklund2024slisemap,
  title      = {{SLISEMAP}: Supervised dimensionality reduction through local explanations},
  shorttitle = {{SLISEMAP}},
  author     = {Bj{\"o}rklund, Anton and M{\"a}kel{\"a}, Jarmo and Puolam{\"a}ki, Kai},
  volume     = {112},
  issn       = {0885-6125, 1573-0565},
  doi        = {10.1007/s10994-022-06261-1},
  number     = {1},
  journal    = {Machine Learning},
  year       = {2023},
  month      = {Jan},
  pages      = {1--43}
}

GitHub Events

Total
  • Watch event: 2
  • Push event: 5
  • Pull request event: 2
  • Create event: 1
Last Year
  • Watch event: 2
  • Push event: 5
  • Pull request event: 2
  • Create event: 1

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 95 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 1
  • Total versions: 17
  • Total maintainers: 1
pypi.org: slisemap

SLISEMAP: Combine local explanations with supervised dimensionality reduction

  • Documentation: https://slisemap.readthedocs.io/
  • License: MIT License Copyright (c) 2024 Anton Björklund, Jarmo Mäkelä, and Kai Puolamäki Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  • Latest release: 1.6.2
    published almost 2 years ago
  • Versions: 17
  • Dependent Packages: 1
  • Dependent Repositories: 1
  • Downloads: 95 Last month
Rankings
Dependent packages count: 10.1%
Average: 19.3%
Dependent repos count: 21.6%
Downloads: 26.2%
Maintainers (1)
Last synced: 7 months ago

Dependencies

.github/workflows/python-docs.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/python-publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • pypa/gh-action-pypi-publish 27b31702a0e7fc50959f5ad993c78deac1bdfc29 composite
.github/workflows/python-pytest.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
docs/requirements-dev.txt pypi
  • mkdocs * development
  • mkdocs-include-markdown-plugin * development
  • mkdocs-material * development
  • mkdocstrings * development
experiments/requirements.txt pypi
  • lime *
  • matplotlib *
  • numpy *
  • openml *
  • pandas *
  • scikit-learn *
  • scipy *
  • seaborn *
  • shap *
  • umap-learn *
requirements-dev.txt pypi
  • IPython * development
  • black * development
  • furo * development
  • jupyter * development
  • myst-parser * development
  • pylint * development
  • pytest * development
  • sphinx * development
requirements.txt pypi
  • matplotlib *
  • numpy *
  • pandas *
  • scikit-learn *
  • scipy *
  • seaborn *
pyproject.toml pypi
  • matplotlib >= 3.3
  • numpy >= 1.19
  • scikit-learn >= 0.24
  • seaborn >= 0.11
  • torch >= 1.9