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 improves 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.45.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distributions

shap-0.45.0-cp312-cp312-win_amd64.whl (453.3 kB view details)

Uploaded CPython 3.12Windows x86-64

shap-0.45.0-cp312-cp312-musllinux_1_1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

shap-0.45.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (538.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

shap-0.45.0-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (542.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.12+ x86-64manylinux: glibc 2.17+ x86-64

shap-0.45.0-cp312-cp312-macosx_11_0_arm64.whl (451.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

shap-0.45.0-cp312-cp312-macosx_10_9_x86_64.whl (457.1 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

shap-0.45.0-cp311-cp311-win_amd64.whl (453.1 kB view details)

Uploaded CPython 3.11Windows x86-64

shap-0.45.0-cp311-cp311-musllinux_1_1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

shap-0.45.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (536.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

shap-0.45.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (538.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.12+ x86-64manylinux: glibc 2.17+ x86-64

shap-0.45.0-cp311-cp311-macosx_11_0_arm64.whl (452.1 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

shap-0.45.0-cp311-cp311-macosx_10_9_x86_64.whl (457.1 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

shap-0.45.0-cp310-cp310-win_amd64.whl (453.1 kB view details)

Uploaded CPython 3.10Windows x86-64

shap-0.45.0-cp310-cp310-musllinux_1_1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

shap-0.45.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (535.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

shap-0.45.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (538.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ x86-64manylinux: glibc 2.17+ x86-64

shap-0.45.0-cp310-cp310-macosx_11_0_arm64.whl (452.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

shap-0.45.0-cp310-cp310-macosx_10_9_x86_64.whl (457.1 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

shap-0.45.0-cp39-cp39-win_amd64.whl (453.1 kB view details)

Uploaded CPython 3.9Windows x86-64

shap-0.45.0-cp39-cp39-musllinux_1_1_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

shap-0.45.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (535.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

shap-0.45.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (538.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64manylinux: glibc 2.17+ x86-64

shap-0.45.0-cp39-cp39-macosx_11_0_arm64.whl (452.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

shap-0.45.0-cp39-cp39-macosx_10_9_x86_64.whl (457.1 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: shap-0.45.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for shap-0.45.0.tar.gz
Algorithm Hash digest
SHA256 be8ffc213ba3da1ce7950784571356e6ca77bee94446ddfa9c63eb2c72f7ce9e
MD5 5de32d9433a39b142267ad1b63e1aa43
BLAKE2b-256 dc6b1b485a78385f9f682f3f53d704d10087f80fc74ad2e3ebe4adc91b6ee1dd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shap-0.45.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 453.3 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for shap-0.45.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9b37f22158e01fb6d8a6d4616ad759f11ea0524e2de0d6cc7d66177e23fe9e9f
MD5 7c37bdb46b5ea0da12cd69e96b47b290
BLAKE2b-256 5bdba7163892b1377e0dadd7f924e7bddbfeeb76b66993a8baca8f162481cb45

See more details on using hashes here.

File details

Details for the file shap-0.45.0-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.45.0-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7fd0bc2a2215383af72e05061b4c4ff91a0ef0c55d272ae78ac77a8356d522f9
MD5 1c26887bd86541426cc432293d11f39d
BLAKE2b-256 dc60c9bd8c0a79eca738efa195f6ac6d7a9b99929146b63fd0252f46ba5bbb0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.45.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a4c824152f41885f2b92d211afbabf990415b97bbca7285c7d96c086b22c53c7
MD5 efe9d66a127da5a154b2d2ece5a28f3f
BLAKE2b-256 43ec9c300068ce84bb25aa51ea552882dfa911f6d3bc040173c8d4c7b711079d

See more details on using hashes here.

File details

Details for the file shap-0.45.0-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.45.0-cp312-cp312-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fdea57f9038d502aa72e6bacbcd3380e807960769796c4a273cbe23d132696de
MD5 7119e5da4a2cb8076bbf930262567da6
BLAKE2b-256 54fd103939843c986fd6d758a13bd3b088d9661725022104408aad2d5c8ada6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.45.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 117f6f6f224b6e61925a6eec2cc196170c879d092a91ff817d91a0bfe4e85bf4
MD5 ae60500f75f95a735d31f9ab79197b26
BLAKE2b-256 c98ab57d5e31c449f3e065902e0907495ba1fa1af0c123d4be5e75b908d60434

See more details on using hashes here.

File details

Details for the file shap-0.45.0-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.45.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ee81bd44cd0de92b46e92175e40d8b91243278f6d7c9725dbca5a567ffda6e13
MD5 9b834c8659a089445d387d0d6954316b
BLAKE2b-256 9f0546190e7f7d02100142d01be1a11bcb7279f2b639a523dd84d9a366a65bde

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shap-0.45.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 453.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for shap-0.45.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7bb7867e833c7b5735a9615de9a1e1f9d6c4cb9b05936b5bd7fe4eb592d705ea
MD5 d3c5ffc2b265995cd1773332de717487
BLAKE2b-256 396c4ab39615fc3ffe40faaa62fc2feb43868b8ce946c671e84bf476c1e06116

See more details on using hashes here.

File details

Details for the file shap-0.45.0-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.45.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d08703eeef912a483eae314cc533250499780d756ccfa17771bd340257c7f47b
MD5 85ce8939e0cc14581761d927cae02288
BLAKE2b-256 a87fded4a88d011acae2c653360ee3253be5eee83389d7e9aa4c457e3a5bb6bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.45.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 64022a12a80c6f7e26db6cda11d77a7f376b4ae981a9ef27f09403996025429c
MD5 2e441b083a6b541ffdd82a925970088c
BLAKE2b-256 bfc2602f5342da105a19a23bc3f5642ecb5e227c5c275d6d320c2a7b90b4b03c

See more details on using hashes here.

File details

Details for the file shap-0.45.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.45.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a513857dbe125856a0afefa8dd548403a9fe8808f680549ae93fa05dd55438b5
MD5 e26c8387deb98eab42b3ffb283b58096
BLAKE2b-256 ec114540e2666d812426705e8d38a06bf82aee02fe4bebac62bd7d4edc19804c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.45.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c8c4dc44f9ae3d7358f82d9bbca6b1e85096b52a620e497e092bf79570aa86d1
MD5 26f7812295b511ce6a81bf3e5d112f5d
BLAKE2b-256 dc5315b0fdb9e7285be11cf51deaf62705645651ae296d5db076dc4b6881c97b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.45.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 45f1bc767c717c78cc69dd177ab7e3c611bbaebbe39ae7ca55101c190b7cf66c
MD5 1fec13abc8ecaecbd3c9d2aaf5bfc311
BLAKE2b-256 4543a978f3aa3bdf10eacd0325b39119d05a74e5aac93ee2edafafbb1be7d883

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shap-0.45.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 453.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for shap-0.45.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 da173b30b23e967935815a5f45f7bf0dd3ba69738c1e9f91c15bf2d3dc721ff3
MD5 00d31e6cd780595214799b27ded02bee
BLAKE2b-256 9be45709931c785b4629947a5d72e817513ec01201a64e7d0a0ac254bff3aa96

See more details on using hashes here.

File details

Details for the file shap-0.45.0-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.45.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 eab61cc59da2dc3b874478166f392333de8d72f5289b5d050f5f65c859743616
MD5 5bdbaff25f43879833f143abcac59d2a
BLAKE2b-256 c125af2ce31bb8d063faa96993f19d196db60ec53e854fefebc9e0fe0d4f8fab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.45.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1fb3ef4abf26f6510f6626c4690bfb00370622fc2d8ced47b9f385c9be64ef34
MD5 8f8dba3bfe2e36b9686aebb525a58f46
BLAKE2b-256 6c5f5be17aebed9d020dd7963d1dac491984d2104aa0dbece1446c0b2966955b

See more details on using hashes here.

File details

Details for the file shap-0.45.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.45.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ea46a7798b2f9069bb38627011b321242ff722dd55c8689a063fcc424ab22ce6
MD5 a6a510a23eedf17b26d0ddc1ddec321d
BLAKE2b-256 91acc845099e658c7d2320a6b49f8fd86a2054ca59694e32604f275c9051cf81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.45.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16a7e129e0708c4f6d288ca03974c317c9921869d577a2cba1e74ec644a78085
MD5 74d58f96cc45442ef9a98c67e3a7e30f
BLAKE2b-256 0d312b830896266d3f94c4006fdc85677876d271beebf8bf7ef49fe1ff0c0067

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.45.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5dab790083aadfdfebd7a74a8aae150b0049f5366f685cb0e9ac2e2c273d874f
MD5 f897a16d60800c96dca2ac88995ba371
BLAKE2b-256 eebf0040a6a80f8605ec6a96d30df60518b2546caf8c527a425f82dfe8aa04ab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shap-0.45.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 453.1 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for shap-0.45.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 de151d7a27de90a20b31c389c17f1c8d591b8fc5b70837eaeb22a4fefef9c556
MD5 9e52290d502e91c827b2bc7a9cc591e4
BLAKE2b-256 ec709d97e9a2bc8cccc4d3179f9378cf0bedae76a36c05ba7df844f44afc24f4

See more details on using hashes here.

File details

Details for the file shap-0.45.0-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.45.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9ca41a72773e5d155995b41abd95bbfff30922f3d85544ed0a4fc1df8079c7cc
MD5 569b3a316cf119acea5295727305c9cd
BLAKE2b-256 a47923c1d5f134a5943a9b0662367acf5dd68a6fab8a98e03e8a7cfe891b808b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.45.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4e658f09e21d5d646483338ad497a10e8defc6f67986a223244ca8809f874a9e
MD5 850b5f85316f35f1102949868fbe8e9d
BLAKE2b-256 5f8f549cd13d61b2f5757d259f1b099134efd6e86930592a7f9f17a651439293

See more details on using hashes here.

File details

Details for the file shap-0.45.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.45.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 751836bb1eae9e73be5cb59218cf8ac362097a1d1f39afdd098cfb35abe9121d
MD5 d5574cd9b75ab7921b29e01ab8d5239f
BLAKE2b-256 e540f86a7ac181a168e2f21c9d95b2d19f7abb4da242930feb37ad73f818c1a9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shap-0.45.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 452.1 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for shap-0.45.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2747a2e650572567f94361adfa1fad77c857f0203a923968a80257ee1fe095d6
MD5 a0d12e85f6b9fd28cf7410e829d349a2
BLAKE2b-256 578e30ee29aba55126042f37e7cecc4c970430212d8e5dafac51de93f5d5cd58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.45.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ee2a9188f08b643c789099a1ba9326691d10df8fff8feea1bde83142b9d5c98e
MD5 a4f8961e2ecc38fae7a40672f003a03c
BLAKE2b-256 242878a08f937ddfa5c4e75fa4e8a453154b075def8a9ff888cd3fcf99a67f22

See more details on using hashes here.

Supported by

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