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.48.0.tar.gz (3.1 MB view details)

Uploaded Source

Built Distributions

shap-0.48.0-cp313-cp313-win_amd64.whl (545.1 kB view details)

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

shap-0.48.0-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.48.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

shap-0.48.0-cp313-cp313-macosx_11_0_arm64.whl (546.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

shap-0.48.0-cp313-cp313-macosx_10_13_x86_64.whl (555.7 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

shap-0.48.0-cp312-cp312-win_amd64.whl (545.3 kB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

shap-0.48.0-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.48.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

shap-0.48.0-cp312-cp312-macosx_11_0_arm64.whl (547.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

shap-0.48.0-cp312-cp312-macosx_10_13_x86_64.whl (556.6 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

shap-0.48.0-cp311-cp311-win_amd64.whl (544.4 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

shap-0.48.0-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.48.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

shap-0.48.0-cp311-cp311-macosx_11_0_arm64.whl (548.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

shap-0.48.0-cp311-cp311-macosx_10_9_x86_64.whl (555.9 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

shap-0.48.0-cp310-cp310-win_amd64.whl (544.3 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

shap-0.48.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (996.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

shap-0.48.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (995.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

shap-0.48.0-cp310-cp310-macosx_11_0_arm64.whl (548.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

shap-0.48.0-cp310-cp310-macosx_10_9_x86_64.whl (555.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

shap-0.48.0-cp39-cp39-win_amd64.whl (544.9 kB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

shap-0.48.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (997.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

shap-0.48.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (996.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

shap-0.48.0-cp39-cp39-macosx_11_0_arm64.whl (548.7 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

shap-0.48.0-cp39-cp39-macosx_10_9_x86_64.whl (556.5 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for shap-0.48.0.tar.gz
Algorithm Hash digest
SHA256 f169dc73fe144e70a0331b5507f9fd290d7695a3c7935fa8e4862e376321baf9
MD5 129c76e39677f6f23e398bf86e096710
BLAKE2b-256 6c79edeb71f5ee8a936a1d40413188000640ab91da72771e837f1ded141a0ed4

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0.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.48.0-cp313-cp313-win_amd64.whl.

File metadata

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

File hashes

Hashes for shap-0.48.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d1f92323452c5e3ad4338621c7c848cda3059e88ea85338a443e671204c20384
MD5 7629382c1f6545c265c6a24096dfdcdd
BLAKE2b-256 759ee11e9b008d6bd9f8febb6475eb1964e3ee1437ef70d2885b707a95e686cb

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 79cea999bed99db05974216fc566f0da398848588759e41f0289a2fd8a2099a4
MD5 4fa7f44cdc9c1b46dc59db0f7eef434d
BLAKE2b-256 308c283ae8384b20f2fffee6965e4aec1cee535885f4ca881f2c481545dc6b23

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 279890f9649566bbb82622f87ac35f29081fe9aa1e32e02af956e4f33c456b0f
MD5 253521b1f0258205dab2d420a1ad1f0a
BLAKE2b-256 9835018cd7763225fa1288ab195d88470f2ece3f21f8f859432ac6367c552f02

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b3b321fecb950530696963d20837c03f1a95b3c3a82a76b7d569fb38cc4c23e8
MD5 c1a91cb2ce0e39d247487102d8623626
BLAKE2b-256 5acf892892c5bc451e1711b95369c72e2a91b1267a7ec8763f5a1a1602f1d6ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cf3db3060ead2972d1a089736d8d72e5cd2bf3b8676f5740735ab1f8746eebd7
MD5 1cb5c6f6ffd2e17320be88bb71c9e21d
BLAKE2b-256 ba98ba1d969027b7daf4e08859e919c99983705e93910a20b1c70ff325429749

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d8880d47088e955e9693554911fb4c1e3b38f3508ee104c4d7842e2f1d991bb0
MD5 35a83f40fc6c96f98165b1c8307ad19e
BLAKE2b-256 7573a1c84e7f10ea31574b646c8199b3150bfe9deeb24c74e40f6268c7d212d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp312-cp312-win_amd64.whl.

File metadata

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

File hashes

Hashes for shap-0.48.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ea19d7e8eb0071e4f734bca67c12efe8e3b1ef5418915265f0cb9f720ad8d08e
MD5 0339e2ade94d3ebf72d49461021bda09
BLAKE2b-256 8b343dd677ef2a98b74c95188a3fc248cfcb81670a1410ef388f063c962616fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 14ddf529a628902b93c19e59431c5054b8c7be55d7b9d6c6064763b2275e1e56
MD5 09aaa290ea307155d799b6a3782020a4
BLAKE2b-256 463001f17399a42c7baa2589dd27aadd278fd43cee50957dd6b102e504776e1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9aebc7f7c348eae07cb3a970e030487362712ff1d4efd8941656b508a9bfbcc7
MD5 5d5c59f3538915fdabef3d886ac3c644
BLAKE2b-256 963705eb3ce6c31b20c84a124116742363de1f32ff4156432888aed1e3135b22

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e0d0cc355d4f5091b32827c8fa425378ac76f50a4e2891e026ce5cc5c0d7a036
MD5 68ee8f661553cb3d6699b6da46f5a53f
BLAKE2b-256 ca3a0505be445de822bc69c491741bbaf304e0ec0795dc13165b6b740a3e152d

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8ee94e7a429ba4ab3c645da4c2ad9dd78d26889a9fbe75a7e3a744f320ae4de4
MD5 1a1d886c855b7faeedba30e040f46ef4
BLAKE2b-256 b97b78385eb2a1c8bdfbc099f6cada581a286d93a36bcd496f22c0d33bc6536e

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 7277690f2240ccbdd0725f1f654f7ecb09944c330122e7464a83a24e337ddbd6
MD5 3bd59eac6a84bc1767548aea1b061025
BLAKE2b-256 aea84808d83e9f665de79019b8b220182e0a2e9a02b47554a649ebc2205e0964

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp311-cp311-win_amd64.whl.

File metadata

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

File hashes

Hashes for shap-0.48.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a57dca9d1757172d3d4f7a18e94851902fae6feecb07554bc1ccce2f3c215bef
MD5 a78ced53637c66dea219982c7f55a8d8
BLAKE2b-256 aa7ceead607a358b2466b95b302e4a7eae717eeed53615653fbbd4c1527041b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e7608749336e7e1503b79e5c6e6ae5f8ce7cf4f948642d81ed7a5aa9f68435aa
MD5 5148df4e7aece3ec5a0d25eb044438ac
BLAKE2b-256 7b5f35f7094687da110d2bb6f8f75c4e42269a95e44dbaca1d88c1ed08fbe06f

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 935955d51bae4b6eb0fd682fcccf26540bfd1ad49ce8b2edb149cb3447246996
MD5 68695fedb8b3b5b79f52e150ea47607e
BLAKE2b-256 2bc87b607f4524c6315c4386cb23e92e944f38478b84e34214752b668f986b1e

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 016e3b700eef5c6efe75002ad5bf4bf279f757adb78e8b918d89bb85d57db4e5
MD5 ff1283bded7f9edcb3397464c1f44309
BLAKE2b-256 a0d252509b34f0c1162aea688d71878869a06379c84c07349da6132688fe4575

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 678c345ac7ef882370f6f77699c36e64fffe2079e4b1c0d06fdddf219ef2893c
MD5 3ed2aa5488a32b7a2c303045d66914a9
BLAKE2b-256 7ad5f7d92d9cb8c7cc2b9950b34ce2c9cb90602babe0d45a0b70012306489321

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4a90e6092b127bf2070ac055889c8a10f9cdf47831e4e850e6e70c9ae9fb6572
MD5 db9bf10571ecb1ac66c48aec1481598e
BLAKE2b-256 9eca9071534ce1bc5d86a231f54114f73f6fce5ec9694f07441202bbbd4135e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp310-cp310-win_amd64.whl.

File metadata

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

File hashes

Hashes for shap-0.48.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 99304574711a0731392f589243559a16dff8d62ff45605ca7c27d8bea7136694
MD5 c131cbf9236f720b748d6a6e5c50aecc
BLAKE2b-256 dc290d66367603ef3f5078c2b38570b0ac520ae904c96dca8e36161173a9556d

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 01a19f00d57b30fe503540f33dc007a9d941fe69ad2b4fb9f5158778b59f29c3
MD5 7b188ddd55b5f7293a0cff565f71e383
BLAKE2b-256 dd453ddd489706f2dcd248f35f405a8256923ea2ce87e2e61b4632db3fbcc96a

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b19cb6420900d713a87fed5179989efdf7e8d5b82ac91c4ff984d222457cb92a
MD5 55f39d58999fdb6d4afd4a254253f246
BLAKE2b-256 7e718df1a5fe2a816feeb9b9c84acb8a1b0bc679030a1098ecdb97cd421bdb6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 34bada1a8106fd21550b1dac212662e0604ccfa85f4d088775aa78d386964ff4
MD5 151d229fe0690da3d29e006fd2c8a767
BLAKE2b-256 7fab4faf7d9828d4fc5ca1e87327c9002b772d87430dc123db1c16d9b6e6bab4

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 40c120d872aa4ea90bab41892b9ef56faea0a2111e84c83df176ed862481a47e
MD5 06ecb136ae52b27ab35da82b642336a6
BLAKE2b-256 2506b8a715d43cc61b9f39dce6dd9e894e5d389f39a1044d168cb77791e81374

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b6b64adfd5febbed387c9c4c18c5c40b58b8932fad093dd8751b1531f09c4b2f
MD5 43f181f3755814909d617eee0b776b5d
BLAKE2b-256 786a550912b17a18003340cadf0dc7855f8ba768f4f25162b4425ff8610bd251

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp39-cp39-win_amd64.whl.

File metadata

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

File hashes

Hashes for shap-0.48.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c7fd35dd7d754d01afbe6947e4bcbb9d2ed1e7d301754e6f7d45e070bed784be
MD5 4e8934a7cad292332d9094dc3e14dbce
BLAKE2b-256 993db0f92bb496827cd06cb46483309f76ef49b3ae322cc0bb2d257cbd4a9695

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5018520b789fba61d19bea5b061d988aad33ead01a05d6ec29b68d909dd0486c
MD5 46d7534dcc1d15562bc2f8cb9b77440c
BLAKE2b-256 25145aa12c8ec16e9cd5d8487559e17008a0af5c8d44b87b0d1d7f431be7802c

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d78697fb32ae30aba1aec7ab1af66709761a86217dcad6f5f4ea46a61683b6e6
MD5 62801498a4685b320adef7e56b55b5a9
BLAKE2b-256 79e34662058852be4aa6f2234e0bb6fc0958861224ec81d508a9e46a5aa85630

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 687ef1eedb9fd9ea6dacf06cec66c1d626f0c7d046fcb0d37a57443e4b088dc1
MD5 a0609fc7d703fdde35b3406a2039a800
BLAKE2b-256 7957967398054e263f2242af89b5ab967893799489b0dc32a14d49d80417a720

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

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

File hashes

Hashes for shap-0.48.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3056eeb3a81fbb6a60170fe621ccd2bd235450da13483b4e07f354c11ded0d37
MD5 b6fd50176fda15fa207f6c18d9f0f8c3
BLAKE2b-256 e7f91b88a16e6e525386b8635626e16503b095cb6097d07df968e1595ef124bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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.48.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.48.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 55e92a88a5cd2f9a5b5ca819f9a31b8b74212c1d1e86e5608d62c81afbfec6b0
MD5 dd8c76dd91ed60439d4cd738a5d68620
BLAKE2b-256 7915081cc4d21a49e91e4995cf1dcff1e298c6f49a10ec5f3bba4541899428ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for shap-0.48.0-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 Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page