Provides model interpretability and feature importance analysis using SHAP values.

Install

mkdir -p .claude/skills/shap && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/2284" && unzip -o skill.zip -d .claude/skills/shap && rm skill.zip

Installs to .claude/skills/shap

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Model interpretability and explainability using SHAP (SHapley Additive exPlanations). Use this skill when explaining machine learning model predictions, computing feature importance, generating SHAP plots (waterfall, beeswarm, bar, scatter, force, heatmap), debugging models, analyzing model bias or fairness, comparing models, or implementing explainable AI. Works with tree-based models (XGBoost, LightGBM, Random Forest), deep learning (TensorFlow, PyTorch), linear models, and any black-box model.
501 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • →Compute SHAP values for tree-based, deep learning, and linear models
  • →Generate visualization plots including waterfall, beeswarm, and bar charts
  • →Analyze feature importance and model bias
  • →Debug model behavior and validate feature relationships
  • →Compare feature importance across multiple models

How it works

It uses Shapley values from cooperative game theory to quantify the contribution of each feature to a model's prediction relative to a baseline.

Inputs & outputs

You give it
Trained machine learning model and test dataset
You get back
SHAP values object and visual interpretation plots

When to use shap

  • →Analyze feature importance
  • →Explain model predictions
  • →Visualize model bias
  • →Create shap plots

About this skill

SHAP

Use SHAP to describe how a fitted predictive model maps inputs to outputs. Work from the modern shap.Explanation API, make the explained output and background distribution explicit, and validate every explanation before interpreting it.

This skill is aligned with SHAP 0.52.0 (released 2026-05-28). That release requires Python 3.12 or newer.

The maintained examples were checked on Python 3.12.10 with SHAP 0.52.0, NumPy 2.5.3, pandas 3.0.6, scikit-learn 1.9.1, and matplotlib 3.11.2. Native tests cover small tree, exact, permutation, partition, linear, additive, kernel, text, and constant-image games; additional numeric XGBoost 3.4.1 smoke checks cover raw, probability, loss, and interaction outputs. Reference snippets that require a project model, framework, or data are adaptation templates; optional pretrained/deep, GPU, and distributed integrations remain illustrative and require their own runtime validation.

Operating Rules

  1. Explain a fixed, evaluated model; do not use SHAP as a substitute for predictive validation.
  2. Use held-out or clearly labeled analysis rows for explanations. Choose background rows only from an appropriate training or reference population.
  3. State the explained output: regression value, raw margin, probability, log loss, logit, or another model method.
  4. Prefer shap.Explanation objects and explainer(X). Some specialized options still require .shap_values(X), including deep ranked outputs, gradient sampling budgets, and Kernel SHAP nsamples. Preserve their output indexes and baselines explicitly.
  5. For multi-output models, select one output before using tabular plots: explanation[..., output_index].
  6. Check base_values + values.sum(...) against the exact model output being explained.
  7. Treat SHAP as a description of model behavior under a masking/background choice. It does not establish causality, fairness, recourse, or scientific mechanism.
  8. Never silence an additivity failure until input shape, preprocessing, model version, output space, and row ordering have been checked.
  9. Do not load untrusted pickle, joblib, model, or explainer artifacts; those formats can execute code during deserialization.

Install

Create an isolated environment and pin the documented release:

uv venv --python 3.12
source .venv/bin/activate
uv pip install "shap[plots]==0.52.0"

shap[plots] installs the plotting dependencies. Add the fitted model's package at a version compatible with the project. For older Python compatibility, read references/migration.md instead of silently installing a different SHAP release.

Confirm the environment before debugging an API mismatch:

import platform
import shap

print("Python:", platform.python_version())
print("SHAP:", shap.__version__)

Standard Workflow

1. Define the explanation target

Record:

  • model and preprocessing version;
  • exact callable or model method being explained;
  • output name/index and units;
  • evaluation rows;
  • background/reference population;
  • masker and explainer algorithm;
  • SHAP and model-library versions.

For classifiers, decide whether the task needs raw margins or probabilities. Defaults differ by model family; never infer units from the plot color or sign.

2. Select an explainer and masker

Start with shap.Explainer(model, masker) when automatic dispatch is sufficient. Instantiate a specialized explainer when its assumptions or output controls matter.

SituationPreferred choiceImportant constraint
Supported tree ensembleTreeExplainermodel_output="probability" and "log_loss" require interventional masking and background data
Linear modelLinearExplainerThe masker determines interventional versus correlation-aware behavior
Small feature spaceExactExplainerCost grows quickly with unconstrained feature count
General tabular callablePermutationExplainerBudget at least one full forward/reverse permutation
Hierarchical feature groups, text, or imagePartitionExplainerThe partition tree changes the cooperative game
Differentiable neural networkDeepExplainer or GradientExplainerFramework support, output shape, and background choice require testing
Legacy Kernel SHAP workflowKernelExplainerUsually much slower than model-specific methods

Use the detailed decision guide in references/explainers.md. Use references/data-maskers.md when features are correlated, structured, sparse, or semantically grouped.

3. Compute a modern Explanation

This complete binary-classification example uses an explicit background and selects output index 1. In the breast-cancer dataset, class 1 means benign, so positive SHAP values below increase predicted benign probability, not cancer risk. For another dataset, resolve the requested label through model.classes_ and record its meaning before selecting an output index; column 1 is not universally the clinically positive event.

import numpy as np
import shap
from sklearn.datasets import load_breast_cancer
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

X, y = load_breast_cancer(as_frame=True, return_X_y=True)
X = X.astype(np.float32)  # Match sklearn forest prediction inputs.
X_train, X_test, y_train, y_test = train_test_split(
    X,
    y,
    test_size=0.25,
    stratify=y,
    random_state=7,
)

model = RandomForestClassifier(
    n_estimators=200,
    min_samples_leaf=3,
    random_state=7,
    n_jobs=-1,
).fit(X_train, y_train)

X_test = X_test.iloc[:100]  # Predeclared held-out explanation subset.
background = shap.sample(X_train, 100, random_state=7)
explainer = shap.Explainer(model, background, algorithm="tree")
all_outputs = explainer(X_test)

# sklearn tree classifiers expose one output per class.
positive = all_outputs[..., 1]
assert positive.values.shape == X_test.shape

reconstructed = np.asarray(positive.base_values) + positive.values.sum(axis=1)
expected = model.predict_proba(X_test)[:, 1]
np.testing.assert_allclose(reconstructed, expected, rtol=1e-5, atol=1e-6)

shap.plots.beeswarm(positive, max_display=15)
shap.plots.waterfall(positive[0], max_display=15)

Output shape is model-dependent:

  • one tabular output: (samples, features);
  • multiple tabular outputs: (samples, features, outputs);
  • multiple model inputs: often a list of arrays or explanations;
  • image/text explanations: feature axes follow the input representation, with output selection on the final axis when present.

Do not use the pre-0.45 pattern values[class_index] for a modern multi-output array. Use values[..., class_index] or slice the Explanation itself.

4. Control tree output semantics when needed

For a supported tree classifier, probability-space explanations must be explicit:

background = shap.sample(X_train, 200, random_state=7)

explainer = shap.TreeExplainer(
    model,
    data=shap.maskers.Independent(background, max_samples=len(background)),
    feature_perturbation="interventional",
    model_output="probability",
)
probability_exp = explainer(X_test)

A bare background frame is capped at 100 rows by the default masker. The explicit masker above retains all 200 sampled rows; inspect len(explainer.data) when reporting or comparing background sizes.

In SHAP 0.52:

  • feature_perturbation="auto" uses interventional semantics when background data is supplied and tree-path-dependent semantics otherwise;
  • probability and log-loss output modes are supported only with interventional semantics;
  • pass approximate=True to explainer(X, approximate=True) if deliberately using the lower-fidelity tree approximation; do not pass it to the constructor.

5. Use a model-agnostic callable deliberately

Pass the exact callable whose outputs will be interpreted:

masker = shap.maskers.Independent(background, max_samples=100)
explainer = shap.Explainer(
    model.predict_proba,
    masker,
    algorithm="permutation",
    output_names=[str(label) for label in model.classes_],
    seed=7,
)

budget = 2 * X_test.shape[1] + 1
all_outputs = explainer(X_test.iloc[:20], max_evals=budget)
# 0.52 selector dispatch may drop output_names for permutation.
all_outputs.output_names = [str(label) for label in model.classes_]
positive = all_outputs[..., 1]

Increase max_evals to average over more permutations when estimates are unstable. Keep the seed, background sample, and evaluation budget in the report.

6. Visualize the question, not merely the available plot

QuestionPlot
Which features have the largest average attribution magnitude?shap.plots.bar(exp)
How do direction, magnitude, and observed values vary globally?shap.plots.beeswarm(exp)
Why did one prediction differ from its baseline?shap.plots.waterfall(exp[i])
How does one feature's attribution vary over its values?shap.plots.scatter(exp[:, feature])
Do explanations form sample-level patterns?shap.plots.heatmap(exp)
How do predefined cohorts differ descriptively?shap.plots.bar(exp.cohorts(labels).abs.mean(0))
Which tokens or image regions contribute to an output?shap.plots.text(exp) or shap.plots.image(exp)

Read references/plots.md before customizing or saving figures.

7. Report limitations with results

At minimum, report:

  • output and units;
  • baseline/reference population;
  • explainer and masker;
  • sample count and selection;
  • output index/name;
  • additivity error or applicable approximation diagnostics;
  • known correlated/grouped features;
  • whether results are local, aggregated, or cohort-specific;
  • a clear non-causal statement.

Common Tasks

Global and local analysis

Use global plots to locate important patterns, scatter plots to inspect those patterns,


Content truncated.

When not to use it

  • →When interpreting causal relationships without domain knowledge
  • →When using KernelExplainer for large datasets due to performance constraints

Prerequisites

numpypandasscikit-learnmatplotlib

Limitations

  • →SHAP values show association rather than causation
  • →KernelExplainer is computationally expensive for large models
  • →Baseline selection impacts SHAP value magnitudes

How it compares

Unlike generic feature importance methods, this approach provides a unified, mathematically consistent framework for both global and local model interpretability.

Compared to similar skills

shap side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
shap (this skill)83moReviewIntermediate
quant-analyst1034moNo flagsAdvanced
umap-learn63moReviewIntermediate
embedding-strategies84moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by K-Dense-AI

View all by K-Dense-AI →

literature-review

K-Dense-AI

Conduct comprehensive, systematic literature reviews using multiple academic databases (PubMed, arXiv, bioRxiv, Semantic Scholar, etc.). This skill should be used when conducting systematic literature reviews, meta-analyses, research synthesis, or comprehensive literature searches across biomedical, scientific, and technical domains. Creates professionally formatted markdown documents and PDFs with verified citations in multiple citation styles (APA, Nature, Vancouver, etc.).

5591,298

markitdown

K-Dense-AI

Convert various file formats (PDF, Office documents, images, audio, web content, structured data) to Markdown optimized for LLM processing. Use when converting documents to markdown, extracting text from PDFs/Office files, transcribing audio, performing OCR on images, extracting YouTube transcripts, or processing batches of files. Supports 20+ formats including DOCX, XLSX, PPTX, PDF, HTML, EPUB, CSV, JSON, images with OCR, and audio with transcription.

177310

scientific-writing

K-Dense-AI

Write scientific manuscripts. IMRAD structure, citations (APA/AMA/Vancouver), figures/tables, reporting guidelines (CONSORT/STROBE/PRISMA), abstracts, for research papers and journal submissions.

94309

exploratory-data-analysis

K-Dense-AI

Perform comprehensive exploratory data analysis on scientific data files across 200+ file formats. This skill should be used when analyzing any scientific data file to understand its structure, content, quality, and characteristics. Automatically detects file type and generates detailed markdown reports with format-specific analysis, quality metrics, and downstream analysis recommendations. Covers chemistry, bioinformatics, microscopy, spectroscopy, proteomics, metabolomics, and general scientific data formats.

15114

infographics

K-Dense-AI

Create professional infographics using Nano Banana Pro AI with smart iterative refinement. Uses Gemini 3 Pro for quality review. Integrates research-lookup and web search for accurate data. Supports 10 infographic types, 8 industry styles, and colorblind-safe palettes.

1141

pptx-posters

K-Dense-AI

Create research posters using HTML/CSS that can be exported to PDF or PPTX. Use this skill ONLY when the user explicitly requests PowerPoint/PPTX poster format. For standard research posters, use latex-posters instead. This skill provides modern web-based poster design with responsive layouts and easy visual integration.

911

You might also like

quant-analyst

zenobi-us

Expert quantitative analyst specializing in financial modeling, algorithmic trading, and risk analytics. Masters statistical methods, derivatives pricing, and high-frequency trading with focus on mathematical rigor, performance optimization, and profitable strategy development.

103355

umap-learn

K-Dense-AI

UMAP dimensionality reduction. Fast nonlinear manifold learning for 2D/3D visualization, clustering preprocessing (HDBSCAN), supervised/parametric UMAP, for high-dimensional data.

6100

embedding-strategies

wshobson

Select and optimize embedding models for semantic search and RAG applications. Use when choosing embedding models, implementing chunking strategies, or optimizing embedding quality for specific domains.

890

building-automl-pipelines

jeremylongshore

Build automated machine learning pipelines, including feature engineering, model selection, and performance evaluation.

688

model-compare

rawwerks

Compare 3D CAD models using boolean operations (IoU, Dice, precision/recall). Use when evaluating generated models against gold references, diffing CAD revisions, or computing similarity metrics for ML training. Triggers on: model diff, compare models, IoU, intersection over union, model similarity, CAD comparison, STEP diff, 3D evaluation, gold reference, generated model, precision recall 3D.

783

matchms

davila7

Mass spectrometry analysis. Process mzML/MGF/MSP, spectral similarity (cosine, modified cosine), metadata harmonization, compound ID, for metabolomics and MS data processing.

674

Search skills

Search the agent skills registry