Skip to main content

Streamlit component for SHAP

Project description

streamlit-shap

This component provides a wrapper to display SHAP plots in Streamlit.

Installation

First install Streamlit (of course!) then pip install this library:

pip install streamlit
pip install streamlit-shap

Example

import streamlit as st
from streamlit_shap import st_shap
import shap

from sklearn.model_selection import train_test_split
import xgboost

import numpy as np
import pandas as pd


@st.experimental_memo
def load_data():
    return shap.datasets.adult()

@st.experimental_memo
def load_model(X, y):
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=7)
    d_train = xgboost.DMatrix(X_train, label=y_train)
    d_test = xgboost.DMatrix(X_test, label=y_test)
    params = {
        "eta": 0.01,
        "objective": "binary:logistic",
        "subsample": 0.5,
        "base_score": np.mean(y_train),
        "eval_metric": "logloss",
        "n_jobs": -1,
    }
    model = xgboost.train(params, d_train, 10, evals = [(d_test, "test")], verbose_eval=100, early_stopping_rounds=20)
    return model

st.title("SHAP in Streamlit")

# train XGBoost model
X,y = load_data()
X_display,y_display = shap.datasets.adult(display=True)

model = load_model(X, y)

# compute SHAP values
explainer = shap.Explainer(model, X)
shap_values = explainer(X)

st_shap(shap.plots.waterfall(shap_values[0]), height=300)
st_shap(shap.plots.beeswarm(shap_values), height=300)

explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X)

st_shap(shap.force_plot(explainer.expected_value, shap_values[0,:], X_display.iloc[0,:]), height=200, width=1000)
st_shap(shap.force_plot(explainer.expected_value, shap_values[:1000,:], X_display.iloc[:1000,:]), height=400, width=1000)

st_shap

Notes

Colorbar changes in matplotlib>3.4.3 introduced bugs (#22625, #22087) that cause the colorbar of certain shap plots (e.g. beeswarm) to not display properly. If colorbars are not displayed properly, try downgrading matplotlib to 3.4.3.

Project details


Download files

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

Source Distribution

streamlit-shap-1.0.2.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

streamlit_shap-1.0.2-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file streamlit-shap-1.0.2.tar.gz.

File metadata

  • Download URL: streamlit-shap-1.0.2.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.10

File hashes

Hashes for streamlit-shap-1.0.2.tar.gz
Algorithm Hash digest
SHA256 d48d4b0ee54c8576cc942949e18416b288bd6ac791051cc55345fe125fec1ab3
MD5 688bef37f0fda43997fc4ecafc9eec47
BLAKE2b-256 a405a7e8543ebc2e1ea47995ba2eb58de8cfa06152c779bf0c03508b24a6d97f

See more details on using hashes here.

File details

Details for the file streamlit_shap-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: streamlit_shap-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.10

File hashes

Hashes for streamlit_shap-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1762aca13393bab8a98eececd07985d9f9ab53b8866d48fb81186ce123bde7d2
MD5 cd4457760bdfb58b7c2177a9e42a35d6
BLAKE2b-256 a55a1481baf35b7c86010196ce418f3c07c05e95c8e48c1824668d4b82262a75

See more details on using hashes here.

Supported by

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