Skip to main content

Implementation of the SurvSHAP(t) explanation method for time-dependent explainability of machine learning survival models

Project description

survshap

Overview

The survshap package contains an implementation of the SurvSHAP(t) method, the first time-dependent explanation method for interpreting survival black-box models. It is based on SHapley Additive exPlanations (SHAP) but extends it to the time-dependent setting of survival analysis. SurvSHAP(t) is able to detect time-dependent variable effects and its aggregation determines the local variable importance.

Read more about SurvSHAP(t) in our paper.

Installation

You can install the package from PyPI:

pip install survshap

NOTE: SurvSHAP(t) is also implemented in the survex R package, along with many more explanation methods for survival models. survex offers explanations for scikit-survival models loaded into R via the reticulate package.

Citation

If you use this package, please cite our paper:

@article{survshap,
    title = {SurvSHAP(t): Time-dependent explanations of machine learning survival models},
    journal = {Knowledge-Based Systems},
    volume = {262},
    pages = {110234},
    year = {2023},
    issn = {0950-7051}
    }

Basic usage

# import packages and load data
from survshap import SurvivalModelExplainer, PredictSurvSHAP, ModelSurvSHAP
from sksurv.ensemble import RandomSurvivalForest # or any other survival model
# X, y - data

# prepare survival model
model = RandomSurvivalForest()
model.fit(X, y)

# create explainer
explainer = SurvivalModelExplainer(model = model, data = X, y = y)

# compute SHAP values for a single instance
observation_A = X.iloc[[0]]
survshap_A = PredictSurvSHAP()
survshap_A.fit(explainer = explainer, new_observation = observation_A)

survshap_A.result 
survshap_A.plot()

# compute SHAP values for a group of instances
model_survshap = ModelSurvSHAP(calculation_method="treeshap") # fast implementation for tree-based models
model_survshap.fit(explainer = explainer, new_observations = X)

model_survshap.result
model_survshap.plot_mean_abs_shap_values()
model_survshap.plot_shap_lines_for_all_individuals(variable = "variable1")
extracted_survshap = model_survshap.individual_explanations[0] # PredictSurvSHAP object

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

survshap-0.4.2.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

survshap-0.4.2-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file survshap-0.4.2.tar.gz.

File metadata

  • Download URL: survshap-0.4.2.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.5

File hashes

Hashes for survshap-0.4.2.tar.gz
Algorithm Hash digest
SHA256 a863147d33011002b03c3df3279f1656756a6e3761dc4867016b179161df8da4
MD5 00e60e9a730724e39c71a39b09369fe5
BLAKE2b-256 058a883ff287621301d415e9ba62303c65179d6090d557d7c288cb70a5e37da1

See more details on using hashes here.

File details

Details for the file survshap-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: survshap-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 19.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.5

File hashes

Hashes for survshap-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 83fe0a63dc4bf7bb16d5c92b2ccc5dad92c5e794a8b7eb8a22d27db368c6372c
MD5 a6ff4f72b1ad9c39414ec752283be270
BLAKE2b-256 0601663ebeb02a3a04f4c81aba9993d6a0d02306361cd91b0c49e565e75fbfa1

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