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/mnist_cnn.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.44.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

shap-0.44.0-cp311-cp311-win_amd64.whl (448.0 kB view details)

Uploaded CPython 3.11Windows x86-64

shap-0.44.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.44.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (531.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

shap-0.44.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (533.6 kB view details)

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

shap-0.44.0-cp311-cp311-macosx_11_0_arm64.whl (446.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

shap-0.44.0-cp311-cp311-macosx_10_9_x86_64.whl (450.9 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

shap-0.44.0-cp310-cp310-win_amd64.whl (448.0 kB view details)

Uploaded CPython 3.10Windows x86-64

shap-0.44.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.44.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (531.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

shap-0.44.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (533.5 kB view details)

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

shap-0.44.0-cp310-cp310-macosx_11_0_arm64.whl (446.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

shap-0.44.0-cp310-cp310-macosx_10_9_x86_64.whl (450.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

shap-0.44.0-cp39-cp39-win_amd64.whl (448.0 kB view details)

Uploaded CPython 3.9Windows x86-64

shap-0.44.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.44.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (531.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

shap-0.44.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (533.4 kB view details)

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

shap-0.44.0-cp39-cp39-macosx_11_0_arm64.whl (446.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

shap-0.44.0-cp39-cp39-macosx_10_9_x86_64.whl (450.9 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

shap-0.44.0-cp38-cp38-win_amd64.whl (448.0 kB view details)

Uploaded CPython 3.8Windows x86-64

shap-0.44.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (534.2 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

shap-0.44.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (536.3 kB view details)

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

shap-0.44.0-cp38-cp38-macosx_11_0_arm64.whl (446.0 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

shap-0.44.0-cp38-cp38-macosx_10_9_x86_64.whl (450.9 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: shap-0.44.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for shap-0.44.0.tar.gz
Algorithm Hash digest
SHA256 8f5f0401df83c8b2b566f41872f1bd8bc05bba43aab9e82bfb2047e9b2a0471c
MD5 8ae9326b3d3bc1871e5d9f1fa6405a61
BLAKE2b-256 d224b701ec8ca1fa01b8e1998147462734cae7e613ed4f1ed789239108c9fcd3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shap-0.44.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 448.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for shap-0.44.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 38d884d21ada459eef656939402c02d67a50ea77fee4ef53df6453e3c3dca1bc
MD5 919045666987c07bfe47b104b452ed35
BLAKE2b-256 e54ca4785425971e7433a7d80fa0ff9cd9f5f35303d4e99446190d91c72648c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.44.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 252228cfecb8b73e1d43698fae8f081a1febcb0110b6455cde70eded1e56733d
MD5 4384ec177a3beb8aa9576f5671b87993
BLAKE2b-256 6747919eff201c4ba3ff5d9a62f3c95776db6fbeb515f9144eb5f3a000a74026

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.44.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 34fb9e0a19877b37cd1965757d750636631ee067888703728d7ecd8ad809302b
MD5 f92e6792a4085996f990aab55dabe10c
BLAKE2b-256 a5e7ad1b3adc634d6649fdb364ece11550142c1a5f9aa6148033338bbc70b4bd

See more details on using hashes here.

File details

Details for the file shap-0.44.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.44.0-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f574af8dbb00598e8ee1340dfa172a1546c73f950f06deab3bc866e8e4bb25bc
MD5 115c84179fa01e6506b72d50fc193ec7
BLAKE2b-256 b214a723fc9a19de5f10296340c84784d3bbb3a8a87b4b3b716adcdb61a8baf4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.44.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e3ffa926188b9d9138426e41c98146fce4baf1c64af2c6da6a1f85eae5ec4148
MD5 7a0d1089228c85918b2b61b411b56354
BLAKE2b-256 55d50a1c65b13ab5a24178d162d0cfd3f8a709588388cc5bdd32b17c119f6d54

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.44.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b0dab61c0a2fa52d2e846a8270df2742cb6b4c45e64c32af008733aaeb5a5b3b
MD5 c5f8c34d0d0a6e675eb52601e51097ad
BLAKE2b-256 f65eeb46f7b7e64318377adf7dec0e38e22c022b256eb51985fd14e4b9eb5084

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shap-0.44.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 448.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for shap-0.44.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bedbd076ac7f0e6055c481fd588772740febc4d8d1218364c39696016e731fc2
MD5 7680e569632be064b0caf83b2b52e348
BLAKE2b-256 618dd0790fbbde36aeed7e87516f15d163daddb07ca34c6f736e29e02bddf4c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.44.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 77d20d7e2571051e3ef12e325387c169f59561fbbfcd9ec18cd113b012c27cb1
MD5 86bef7bb394a2dac7ca284d5129db299
BLAKE2b-256 4a7840cdb83010e2d90884b6d48fda670b8887558b1a126d3c6e2697a54852e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.44.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dc385c024d12402c8c667b7ce86689da169252e0e1f27ad013b9f6b276aee241
MD5 2db732eadb40d0b4dc56ae8cedccf2e8
BLAKE2b-256 dd92fd507990665c7da0f93c5587df0edf41b6d8b242038d0a8d6aa024fbb1b3

See more details on using hashes here.

File details

Details for the file shap-0.44.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.44.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e6f02592ca36096be9f886dc1ea4aff4357ca0c7fe0d0493ecb304c67c14064
MD5 039d9784133eeb3518847bacba494abd
BLAKE2b-256 04cdc8bd38eb610f9b80b970f6e98ab88dbc0e017dbbc406248381bb77ae626f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.44.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0d5da8d45c43de7c425c26e7efc11cc31858c2fc9ba39178a8630d1e5b564b77
MD5 433206897edd3efd616456d127a45400
BLAKE2b-256 d5ed3f079158ddd4ca52240f72ab3fd7f3a9d7e1b75faf6d6b0039ab4882cbc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.44.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 896a9e5cf932c34f2932a753313217ca62f8d6bf65d76719752c83328cc408f6
MD5 a07afb354a85886d3cdc015d09acb635
BLAKE2b-256 071fc674e63162efac651dbd9fa28a66d2411451d8b0d2be01670d506c518c09

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shap-0.44.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 448.0 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for shap-0.44.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8b97c0cb911b0c30e1247d820795736dfe2ff5cb60342538e735591c3b2430b8
MD5 a4458cddf5042b837b28c02f58b5659d
BLAKE2b-256 a469d7fa1ed3a315d3e63f4d57f6c9e4523fba4f179fb5fd1dee6b2085491195

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.44.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 eaf8e10df11aff5db6832d13de860d8c2819bb336f5b8512b2df62d428f31ed5
MD5 36a6a538eadb161500f5c7902dd697e5
BLAKE2b-256 440a172f7d665798e95b5b020697f5aa618983f5cc949f695ab3b04a9125f225

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.44.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5cc6a111efb70e7fb42ea156db1a457ea55c60347d288e5128682957c8fa8818
MD5 b719b5d27545686d50bcb84053c7605a
BLAKE2b-256 b71fd48444eaf30588209ff8a9da7368eeb533c35c323b65f9790771dfec1249

See more details on using hashes here.

File details

Details for the file shap-0.44.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.44.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 246677bd5dacf48de74b7d4064928da95f989b1579ea4039a884fc6442c3908f
MD5 b11048289bbc8f96214dbd7449b71dca
BLAKE2b-256 44311ea23b817be0a994675d8786be4c1db1a9e387efb6bfd7126bf7a48b9c2b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shap-0.44.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 446.0 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for shap-0.44.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b43239491f0f30c4be15a08b6d4d5e83d5ed36278f2af80a7a81bbf43fefb61
MD5 707c6ddc72f68aa5626965dbfac7e4c0
BLAKE2b-256 11fcfd4b13b22e79169365496dc257a2710e3cf609a7b2ece40c7553931be933

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shap-0.44.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 65c4f541eaffbdaf52c1f09a819b17a3635fcf80b3c12b5680262465a7bd1829
MD5 a399b9e83331c3f2d419b88b93cb01a5
BLAKE2b-256 999222aa0c2f5e958fa70a2b86ba0f4c75f0549bacf63785a20651ffd3707d9d

See more details on using hashes here.

File details

Details for the file shap-0.44.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: shap-0.44.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 448.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for shap-0.44.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 5e70e0db17d2a4bd7a95db139b3424b059891b03690357ce6e3800105a50e6d5
MD5 eeba312d76089339f33c3f61517cf61c
BLAKE2b-256 680f877e25ac7c5f9c24db18232da80d36b5f3f104f429b819999d9740a07e9a

See more details on using hashes here.

File details

Details for the file shap-0.44.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for shap-0.44.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 618253d1634082cac40fed79b9b673340ed4562c5645eae8a8c718f26617a13b
MD5 8a539eb418d59d0acde581f91129060a
BLAKE2b-256 237a5618b8a1c3a2daea42afdf9ebf829a48aaa6d76ce7ab5fbf58de15534156

See more details on using hashes here.

File details

Details for the file shap-0.44.0-cp38-cp38-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.44.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e1c9186d591b489805d4f9141ceb7d4e5ad5bbdf522fe8262ce9d1999a111523
MD5 67ba23f74b926d3c4206f3df5ba0a5b7
BLAKE2b-256 6159151b58be39b4a472e37fa172af6a54235d948ed80a59d0b9c7626492d730

See more details on using hashes here.

File details

Details for the file shap-0.44.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

  • Download URL: shap-0.44.0-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 446.0 kB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.7

File hashes

Hashes for shap-0.44.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5fac74f0181e7dce27b21442b177baac7f579e32cdc5fa4b95fe98adfb5febc0
MD5 fc15139023c0f24aa29083377043ae9f
BLAKE2b-256 8ce8aff505951be3de864786e12a7b8fdabd2538c24848c17bc7f41dca9008ac

See more details on using hashes here.

File details

Details for the file shap-0.44.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for shap-0.44.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 65b012be193ddc47f33f08c4b2193eb2d6f616e2ffa747f85d272616117fce19
MD5 39c60b0d6960e3f53516636d3d2c4bb0
BLAKE2b-256 ca382c4e7c122e34791759008d7bd451cc29bee06ec737b98959fd768a7bdfbf

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