Skip to main content

A unified approach to explain the output of any machine learning model.

Project description


PyPI Conda License Tests Binder Documentation Status Downloads PyPI pyversions

SHAP (SHapley Additive exPlanations) is a game theoretic approach to explain the output of any machine learning model. It connects optimal credit allocation with local explanations using the classic Shapley values from game theory and their related extensions (see papers for details and citations).

Install

SHAP can be installed from either PyPI or conda-forge:

pip install shap
or
conda install -c conda-forge shap

Tree ensemble example (XGBoost/LightGBM/CatBoost/scikit-learn/pyspark models)

While SHAP can explain the output of any machine learning model, we have developed a high-speed exact algorithm for tree ensemble methods (see our Nature MI paper). Fast C++ implementations are supported for XGBoost, LightGBM, CatBoost, scikit-learn and pyspark tree models:

import xgboost
import shap

# train an XGBoost model
X, y = shap.datasets.california()
model = xgboost.XGBRegressor().fit(X, y)

# explain the model's predictions using SHAP
# (same syntax works for LightGBM, CatBoost, scikit-learn, transformers, Spark, etc.)
explainer = shap.Explainer(model)
shap_values = explainer(X)

# visualize the first prediction's explanation
shap.plots.waterfall(shap_values[0])

The above explanation shows features each contributing to push the model output from the base value (the average model output over the training dataset we passed) to the model output. Features pushing the prediction higher are shown in red, those pushing the prediction lower are in blue. Another way to visualize the same explanation is to use a force plot (these are introduced in our Nature BME paper):

# visualize the first prediction's explanation with a force plot
shap.plots.force(shap_values[0])

If we take many force plot explanations such as the one shown above, rotate them 90 degrees, and then stack them horizontally, we can see explanations for an entire dataset (in the notebook this plot is interactive):

# visualize all the training set predictions
shap.plots.force(shap_values[:500])

To understand how a single feature effects the output of the model we can plot the SHAP value of that feature vs. the value of the feature for all the examples in a dataset. Since SHAP values represent a feature's responsibility for a change in the model output, the plot below represents the change in predicted house price as the latitude changes. Vertical dispersion at a single value of latitude represents interaction effects with other features. To help reveal these interactions we can color by another feature. If we pass the whole explanation tensor to the color argument the scatter plot will pick the best feature to color by. In this case it picks longitude.

# create a dependence scatter plot to show the effect of a single feature across the whole dataset
shap.plots.scatter(shap_values[:, "Latitude"], color=shap_values)

To get an overview of which features are most important for a model we can plot the SHAP values of every feature for every sample. The plot below sorts features by the sum of SHAP value magnitudes over all samples, and uses SHAP values to show the distribution of the impacts each feature has on the model output. The color represents the feature value (red high, blue low). This reveals for example that higher median incomes increases the predicted home price.

# summarize the effects of all the features
shap.plots.beeswarm(shap_values)

We can also just take the mean absolute value of the SHAP values for each feature to get a standard bar plot (produces stacked bars for multi-class outputs):

shap.plots.bar(shap_values)

Natural language example (transformers)

SHAP has specific support for natural language models like those in the Hugging Face transformers library. By adding coalitional rules to traditional Shapley values we can form games that explain large modern NLP model using very few function evaluations. Using this functionality is as simple as passing a supported transformers pipeline to SHAP:

import transformers
import shap

# load a transformers pipeline model
model = transformers.pipeline('sentiment-analysis', return_all_scores=True)

# explain the model on two sample inputs
explainer = shap.Explainer(model)
shap_values = explainer(["What a great movie! ...if you have no taste."])

# visualize the first prediction's explanation for the POSITIVE output class
shap.plots.text(shap_values[0, :, "POSITIVE"])

Deep learning example with DeepExplainer (TensorFlow/Keras models)

Deep SHAP is a high-speed approximation algorithm for SHAP values in deep learning models that builds on a connection with DeepLIFT described in the SHAP NIPS paper. The implementation here differs from the original DeepLIFT by using a distribution of background samples instead of a single reference value, and using Shapley equations to linearize components such as max, softmax, products, divisions, etc. Note that some of these enhancements have also been since integrated into DeepLIFT. TensorFlow models and Keras models using the TensorFlow backend are supported (there is also preliminary support for PyTorch):

# ...include code from https://github.com/keras-team/keras/blob/master/examples/demo_mnist_convnet.py

import shap
import numpy as np

# select a set of background examples to take an expectation over
background = x_train[np.random.choice(x_train.shape[0], 100, replace=False)]

# explain predictions of the model on four images
e = shap.DeepExplainer(model, background)
# ...or pass tensors directly
# e = shap.DeepExplainer((model.layers[0].input, model.layers[-1].output), background)
shap_values = e.shap_values(x_test[1:5])

# plot the feature attributions
shap.image_plot(shap_values, -x_test[1:5])

The plot above explains ten outputs (digits 0-9) for four different images. Red pixels increase the model's output while blue pixels decrease the output. The input images are shown on the left, and as nearly transparent grayscale backings behind each of the explanations. The sum of the SHAP values equals the difference between the expected model output (averaged over the background dataset) and the current model output. Note that for the 'zero' image the blank middle is important, while for the 'four' image the lack of a connection on top makes it a four instead of a nine.

Deep learning example with GradientExplainer (TensorFlow/Keras/PyTorch models)

Expected gradients combines ideas from Integrated Gradients, SHAP, and SmoothGrad into a single expected value equation. This allows an entire dataset to be used as the background distribution (as opposed to a single reference value) and allows local smoothing. If we approximate the model with a linear function between each background data sample and the current input to be explained, and we assume the input features are independent then expected gradients will compute approximate SHAP values. In the example below we have explained how the 7th intermediate layer of the VGG16 ImageNet model impacts the output probabilities.

from keras.applications.vgg16 import VGG16
from keras.applications.vgg16 import preprocess_input
import keras.backend as K
import numpy as np
import json
import shap

# load pre-trained model and choose two images to explain
model = VGG16(weights='imagenet', include_top=True)
X,y = shap.datasets.imagenet50()
to_explain = X[[39,41]]

# load the ImageNet class names
url = "https://s3.amazonaws.com/deep-learning-models/image-models/imagenet_class_index.json"
fname = shap.datasets.cache(url)
with open(fname) as f:
    class_names = json.load(f)

# explain how the input to the 7th layer of the model explains the top two classes
def map2layer(x, layer):
    feed_dict = dict(zip([model.layers[0].input], [preprocess_input(x.copy())]))
    return K.get_session().run(model.layers[layer].input, feed_dict)
e = shap.GradientExplainer(
    (model.layers[7].input, model.layers[-1].output),
    map2layer(X, 7),
    local_smoothing=0 # std dev of smoothing noise
)
shap_values,indexes = e.shap_values(map2layer(to_explain, 7), ranked_outputs=2)

# get the names for the classes
index_names = np.vectorize(lambda x: class_names[str(x)][1])(indexes)

# plot the explanations
shap.image_plot(shap_values, to_explain, index_names)

Predictions for two input images are explained in the plot above. Red pixels represent positive SHAP values that increase the probability of the class, while blue pixels represent negative SHAP values the reduce the probability of the class. By using ranked_outputs=2 we explain only the two most likely classes for each input (this spares us from explaining all 1,000 classes).

Model agnostic example with KernelExplainer (explains any function)

Kernel SHAP uses a specially-weighted local linear regression to estimate SHAP values for any model. Below is a simple example for explaining a multi-class SVM on the classic iris dataset.

import sklearn
import shap
from sklearn.model_selection import train_test_split

# print the JS visualization code to the notebook
shap.initjs()

# train a SVM classifier
X_train,X_test,Y_train,Y_test = train_test_split(*shap.datasets.iris(), test_size=0.2, random_state=0)
svm = sklearn.svm.SVC(kernel='rbf', probability=True)
svm.fit(X_train, Y_train)

# use Kernel SHAP to explain test set predictions
explainer = shap.KernelExplainer(svm.predict_proba, X_train, link="logit")
shap_values = explainer.shap_values(X_test, nsamples=100)

# plot the SHAP values for the Setosa output of the first instance
shap.force_plot(explainer.expected_value[0], shap_values[0][0,:], X_test.iloc[0,:], link="logit")

The above explanation shows four features each contributing to push the model output from the base value (the average model output over the training dataset we passed) towards zero. If there were any features pushing the class label higher they would be shown in red.

If we take many explanations such as the one shown above, rotate them 90 degrees, and then stack them horizontally, we can see explanations for an entire dataset. This is exactly what we do below for all the examples in the iris test set:

# plot the SHAP values for the Setosa output of all instances
shap.force_plot(explainer.expected_value[0], shap_values[0], X_test, link="logit")

SHAP Interaction Values

SHAP interaction values are a generalization of SHAP values to higher order interactions. Fast exact computation of pairwise interactions are implemented for tree models with shap.TreeExplainer(model).shap_interaction_values(X). This returns a matrix for every prediction, where the main effects are on the diagonal and the interaction effects are off-diagonal. These values often reveal interesting hidden relationships, such as how the increased risk of death peaks for men at age 60 (see the NHANES notebook for details):

Sample notebooks

The notebooks below demonstrate different use cases for SHAP. Look inside the notebooks directory of the repository if you want to try playing with the original notebooks yourself.

TreeExplainer

An implementation of Tree SHAP, a fast and exact algorithm to compute SHAP values for trees and ensembles of trees.

DeepExplainer

An implementation of Deep SHAP, a faster (but only approximate) algorithm to compute SHAP values for deep learning models that is based on connections between SHAP and the DeepLIFT algorithm.

GradientExplainer

An implementation of expected gradients to approximate SHAP values for deep learning models. It is based on connections between SHAP and the Integrated Gradients algorithm. GradientExplainer is slower than DeepExplainer and makes different approximation assumptions.

LinearExplainer

For a linear model with independent features we can analytically compute the exact SHAP values. We can also account for feature correlation if we are willing to estimate the feature covariance matrix. LinearExplainer supports both of these options.

KernelExplainer

An implementation of Kernel SHAP, a model agnostic method to estimate SHAP values for any model. Because it makes no assumptions about the model type, KernelExplainer is slower than the other model type specific algorithms.

  • Census income classification with scikit-learn - Using the standard adult census income dataset, this notebook trains a k-nearest neighbors classifier using scikit-learn and then explains predictions using shap.

  • ImageNet VGG16 Model with Keras - Explain the classic VGG16 convolutional neural network's predictions for an image. This works by applying the model agnostic Kernel SHAP method to a super-pixel segmented image.

  • Iris classification - A basic demonstration using the popular iris species dataset. It explains predictions from six different models in scikit-learn using shap.

Documentation notebooks

These notebooks comprehensively demonstrate how to use specific functions and objects.

Methods Unified by SHAP

  1. LIME: Ribeiro, Marco Tulio, Sameer Singh, and Carlos Guestrin. "Why should i trust you?: Explaining the predictions of any classifier." Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. ACM, 2016.

  2. Shapley sampling values: Strumbelj, Erik, and Igor Kononenko. "Explaining prediction models and individual predictions with feature contributions." Knowledge and information systems 41.3 (2014): 647-665.

  3. DeepLIFT: Shrikumar, Avanti, Peyton Greenside, and Anshul Kundaje. "Learning important features through propagating activation differences." arXiv preprint arXiv:1704.02685 (2017).

  4. QII: Datta, Anupam, Shayak Sen, and Yair Zick. "Algorithmic transparency via quantitative input influence: Theory and experiments with learning systems." Security and Privacy (SP), 2016 IEEE Symposium on. IEEE, 2016.

  5. Layer-wise relevance propagation: Bach, Sebastian, et al. "On pixel-wise explanations for non-linear classifier decisions by layer-wise relevance propagation." PloS one 10.7 (2015): e0130140.

  6. Shapley regression values: Lipovetsky, Stan, and Michael Conklin. "Analysis of regression in game theory approach." Applied Stochastic Models in Business and Industry 17.4 (2001): 319-330.

  7. Tree interpreter: Saabas, Ando. Interpreting random forests. http://blog.datadive.net/interpreting-random-forests/

Citations

The algorithms and visualizations used in this package came primarily out of research in Su-In Lee's lab at the University of Washington, and Microsoft Research. If you use SHAP in your research we would appreciate a citation to the appropriate paper(s):

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shap-0.49.1.tar.gz (4.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

shap-0.49.1-cp313-cp313-win_amd64.whl (547.8 kB view details)

Uploaded CPython 3.13Windows x86-64

shap-0.49.1-cp313-cp313-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

shap-0.49.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

shap-0.49.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

shap-0.49.1-cp313-cp313-macosx_11_0_arm64.whl (555.3 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

shap-0.49.1-cp313-cp313-macosx_10_13_x86_64.whl (558.6 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

shap-0.49.1-cp312-cp312-win_amd64.whl (548.0 kB view details)

Uploaded CPython 3.12Windows x86-64

shap-0.49.1-cp312-cp312-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

shap-0.49.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

shap-0.49.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

shap-0.49.1-cp312-cp312-macosx_11_0_arm64.whl (556.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

shap-0.49.1-cp312-cp312-macosx_10_13_x86_64.whl (559.7 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

shap-0.49.1-cp311-cp311-win_amd64.whl (546.8 kB view details)

Uploaded CPython 3.11Windows x86-64

shap-0.49.1-cp311-cp311-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

shap-0.49.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

shap-0.49.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

shap-0.49.1-cp311-cp311-macosx_11_0_arm64.whl (556.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

shap-0.49.1-cp311-cp311-macosx_10_9_x86_64.whl (558.7 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

shap-0.49.1-cp310-cp310-win_amd64.whl (547.0 kB view details)

Uploaded CPython 3.10Windows x86-64

shap-0.49.1-cp310-cp310-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

shap-0.49.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

shap-0.49.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

shap-0.49.1-cp310-cp310-macosx_11_0_arm64.whl (556.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

shap-0.49.1-cp310-cp310-macosx_10_9_x86_64.whl (559.0 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

shap-0.49.1-cp39-cp39-win_amd64.whl (547.2 kB view details)

Uploaded CPython 3.9Windows x86-64

shap-0.49.1-cp39-cp39-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

shap-0.49.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (999.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

shap-0.49.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (998.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

shap-0.49.1-cp39-cp39-macosx_11_0_arm64.whl (556.8 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

shap-0.49.1-cp39-cp39-macosx_10_9_x86_64.whl (559.2 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

Details for the file shap-0.49.1.tar.gz.

File metadata

  • Download URL: shap-0.49.1.tar.gz
  • Upload date:
  • Size: 4.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for shap-0.49.1.tar.gz
Algorithm Hash digest
SHA256 1114ecd804fff29f50d522ce6031082fcf42fe4a32fb1b5da233b2415d784c8c
MD5 3eea9b93db8cca4e377a9197eb3213dd
BLAKE2b-256 dcc69823a7f483aa9f3179fc359c10d22da9e418b1a7a3fc99a42b705d05e82a

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1.tar.gz:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: shap-0.49.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 547.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for shap-0.49.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6af779344c23b12a47063aab7fc135fefbdb5849233c1813f11dd8cf2fc73bea
MD5 bd67f813ff6259480814c1f222c7ffeb
BLAKE2b-256 84bd0b9b3e19b9b8cda51463f8a749dc354eb9c87f42eddcbfdf742dceb3746b

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp313-cp313-win_amd64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ed3080030a6000d3737841c5770ed555b8a922b794fa0ba5aae1e45655eda1fa
MD5 082d99a1b294caf2dcb7870d97d4958e
BLAKE2b-256 15a289303c1f7eb206658bf9ec974dc6e69b0a6bd309cf5de0cfa8f92f5a8eb3

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d8dfa5654eccf4d13dcb262a10314a4e0eb1060db842b2ef31e9fb0038168bc1
MD5 264384f4a13e9bea60eb5966955c4d1d
BLAKE2b-256 5c91a63e563f3dc8e134db12dd155a1a6ed5e0649f79fc8ac651aac1088e8652

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b440da658d9aee7711bf642c9b4826d81f588fb478cd9e90c068646e90f56669
MD5 d56e815daa6772ccebd014d34ba72e46
BLAKE2b-256 f2be25283a0f8c30deaf897b89a0dbfd490d330f6fc68caa6f19db6e130832e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f4faf61560f73a66f4f26bc027c91f8939201979c4db24949dca305ba0a2ad36
MD5 84c5ce46e0ef52c6b5d9c435f2174079
BLAKE2b-256 2c7f7e7b78e9fac6f891096fb6a59a6d4db23243b0af2369ae54e161f513c485

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 333cd8e8c427badda92d5ada9e7aad1e3e1e8e7e0398da51a18b7ffb03514e45
MD5 7e7ab8eb0c2bf83a9b3355f58a9d1ef3
BLAKE2b-256 e95c030bbfa19605ca4ad66a753d55e76aee5093be6748a6d33eda89e5613995

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: shap-0.49.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 548.0 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for shap-0.49.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 cb28043decfec3f35f795421eb5a81545f629b7f60bbf7449cd2843a7f1c8cc6
MD5 4755ae163a586d158b0e10de6c299ab7
BLAKE2b-256 4a2811422c1c3aa022a06e76cbfa3267e1750cedc00c1e02ef1ccae9c88cd6f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp312-cp312-win_amd64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e823417eb0a01947cd9bd763bef2e534c5aef7a7c2952b1badfa969c7d59d3b3
MD5 9344acdefddf93a0a7ca2f55b3d9058f
BLAKE2b-256 fc9a89ed1ac8beffe8ff8e09c12cb351bc3c79ddaadcc47ca6ee434d76e464d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef9952929d4a7e6763d2716938067bdad762217e3afb46cabfc15a62c012b364
MD5 44a435af478d7f03a53fda16c19f5f72
BLAKE2b-256 c2a496ca9a69dd669ff835ddef875c5dd8e07599103769417d3e9051fd97d470

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 41147740c42821023e1b60185ce8be989656ccac266cc9490d7a8e3ad53c556a
MD5 bd99654d3a2b87aaa437b6506043103d
BLAKE2b-256 c071f7db7a5a2cedaa3ac52f58f453172d613be041bedd9509ce5b5cba2096a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c23f1493205e648634680c8974e82e7f4b2e96ae3a7eca2251680172bd197ae9
MD5 84ecefe8f2940e293b30b8aff3c0d2a1
BLAKE2b-256 eec6c43382d6c891fcf067d0a9f6d954351e3c7d330f4328c5816769b796aa27

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 c652dc77f1fffe73f5a3def3356c5090e2e6401c261e4fe5329d83cb6251e772
MD5 676b865a9c8d77974ffbe16bd713354c
BLAKE2b-256 927accecf7a9158baa10bdc5146907c72dd5f85c762cb5f16cdc74d15cebb8a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: shap-0.49.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 546.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for shap-0.49.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 897c7e6fa98d66482282c8f898c97ade181d714ecaf581da0dab5c49adb9f62c
MD5 70643aeb38da5a5186eebb8462d56ce2
BLAKE2b-256 1748bbcd638a391ac0fb30033398a3cca60ba5c36941d962dd74958e67069108

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp311-cp311-win_amd64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d505834fdf2a159e88b1dcdeddfd79f101fd789ba89d589faf0aaec060c0bad9
MD5 aae31dd8256457c0132f466cc044e41e
BLAKE2b-256 49ffe22e1d899ed56384a2395d6121d6e21833c518c01c5b6c52fce3c0b0cbab

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f424465699aa2dda8057656c6b6d3cb927cf29b054c5bb01cfffcb9efa5dbf98
MD5 2373f35e7fafca7eaba2212b9817396b
BLAKE2b-256 14e9e4079b5de26a8269121ce38125e130c147dac7b59611e0bd94be10f9444e

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 118577d40c53f005268024e59f6a10cbcafbb6d03b3d97dce7c0c7510190ebaa
MD5 438a3fd8e7088a74e3283f5497c475e9
BLAKE2b-256 02bed92623be2c584784e99a8eb9a6cd02263b4eb363c9e49fa14c20f824bcbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0b878470bdf6800069c25d2a8598eb0548aa1e6826becd39cca253521cc14866
MD5 55c9bdc262b7af6a125b0f3ece138c5d
BLAKE2b-256 c23572929fdad25e055aff9dfbeb48c044682fc3b815d90cee4036b90bd65f4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1e208a0129c721bd0eba6268a9ffac4610dbc8a833d07d2ad9f39541bb737f06
MD5 4918d8823943e90606f3933d59cdfe39
BLAKE2b-256 1d08d433b7d18a8b51a7d10477120f78877d806d2eb86283cb1661318d865f3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: shap-0.49.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 547.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for shap-0.49.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4f5bec3d061b4f4889e1ac4e9b676aede2875778ff44b9d5f5a844cbe6788fd2
MD5 77eaaf917c7396b558ea84eb7436d1ae
BLAKE2b-256 afe13d52717b617b9ad1e4d0c9634d3b7c52a913540fde27c4b4663a7ee76b87

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp310-cp310-win_amd64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7fc2e864908277dca2b1d9c59a18b3f31576b985bd024f39b0c3cb7e2c7441db
MD5 351042f8724ef985e48f9892bc88688f
BLAKE2b-256 e9a20518acabb104e21fecda65b0202e41edd06637c44dac15e2197e7d13a002

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fcd832e97038648ba89f659863322d5cd3ea0815e18c36dd48cd7ae1ca9f264b
MD5 cb4528b2764f10600ad30d47206b44a9
BLAKE2b-256 bd09734325f0a9ab9d3dfa5c0908a927027b3d95b3f6929bb62d88e840b85abf

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 54ad4c38e6af56eaa1c892bb3af550a35df15ca0d27d2d41c1d1619ca6a2ba75
MD5 48dc7a9cf956e9b209f60c6fe37b3e0c
BLAKE2b-256 a83ae28014ffc23f386da3d69abd978838e653fff5641831e5a34aade3f4dfe7

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6e9977f1e0b6bba57967de600e8e6047b3e4643d06a4671f2dba1a97c1b5ab3e
MD5 293f89f9bc6d2f89c786176e83d7c407
BLAKE2b-256 06762142615fa5cc745fd66beb066d00db123cc86d614a31ca8029b29537a959

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 40140ec5d306719f89daee1df27805a71bcc1ac39630832455d316d0306d1283
MD5 aeb299aa5365b042c185e701f72281a3
BLAKE2b-256 15a166b4f04995ee23ff8638c21294f1a3a6dc87397af54c87aeeb037500f71f

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: shap-0.49.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 547.2 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for shap-0.49.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 2e171f20a9b6e70d7db5a64c743f906edcb62f4037972c72f6fce6411c4fe907
MD5 8a5882bac9d7bbc4836d6135815dbd7b
BLAKE2b-256 ce05b859dc9fe9a03c5ee29fb1360811f1a2b0fa2e2f5c79864ff40ac8115df8

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp39-cp39-win_amd64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 81061fce7290e7898c52380f00b50e845ec7470b88414a62ffd0c931877ad41e
MD5 e49a5fbab1bed77e0e12f6909cc07a17
BLAKE2b-256 df8b883531fc30737f65762d19396feb8bc2ba6ad16cf363b331f23162d517ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cbd3ed99a18102fae5d5541da049857dfa6a14b04bda9dfdbb285c4c228e9f7a
MD5 8e22c16a6afa00238ac39c66990230b9
BLAKE2b-256 f834b06724657e7903255b46e47a449392874c159aa54b873ef78ef9ee699408

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2a959786597cac60f12a46458abf4389fc1c0463f144854ab0208709524507d0
MD5 22932f3fb430f51d37df06c11052b0f0
BLAKE2b-256 2b95a805f97a73afcf9c6d28a153e6c0461423ca3bd3ecc306dfaa88f844d050

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: shap-0.49.1-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 556.8 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for shap-0.49.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a4d9b899eddffa5dfd122d3a8b423d7763e5cb37f20e3c93810e178733b36b73
MD5 e7de981ed243318a2a9ca69cf5551ebf
BLAKE2b-256 03722e971426023506e3cb34dbfe5f751663d2d011f5fa51e9320a5e0027aa95

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shap-0.49.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.49.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4f1bb2d30517d3f86293bc71e9520ad12967ec4ccb95a9d2185676222df200db
MD5 1b0526d8ae89ff4e5b88db30dd2e4a90
BLAKE2b-256 5204a022b79b986e2085f06fd698784f3468040cfabf093e3136b96143600c81

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.49.1-cp39-cp39-macosx_10_9_x86_64.whl:

Publisher: build_wheels.yml on shap/shap

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page