Best for
- Use this skill when you need to explain leaderboard model behavior, compute SHAP insights, use XEMP prediction explanations, analyze anomaly explanations, or retrieve model diagnostics.
datarobot-oss/datarobot-agent-skills/skills/datarobot-model-explainability/SKILL.md
Tools and guidance for model explainability, prediction explanations, feature impact analysis, SHAP values, SHAP distributions, anomaly assessment, and model diagnostics. Use when analyzing model explanations, feature impact, SHAP values, SHAP distributions, anomaly assessment, or diagnosing model behavior.
Decision brief
This skill covers SHAP insights, XEMP prediction explanations, anomaly explanations, and model diagnostics.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/datarobot-oss/datarobot-agent-skills --skill "skills/datarobot-model-explainability"Inspect the Agent Skill "datarobot-model-explainability" from https://github.com/datarobot-oss/datarobot-agent-skills/blob/b901f1c491c1742ebf9282820cd2d5c00d7db2bf/skills/datarobot-model-explainability/SKILL.md at commit b901f1c491c1742ebf9282820cd2d5c00d7db2bf. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Universal SHAP is the preferred path - no dataset pre-upload or Feature Impact step required.
Review the “Setup” section in the pinned source before continuing.
For time series anomaly detection models, use AnomalyAssessmentRecord.
Use this skill when you need to explain leaderboard model behavior, compute SHAP insights, use XEMP prediction explanations, analyze anomaly explanations, or retrieve model diagnostics.
Compute ShapMatrix, ShapPreview, ShapImpact, and ShapDistributions
Permission review
The documentation includes network, browsing, or remote request actions.
endpoint=os.environ.get("DATAROBOT_ENDPOINT", "https://app.datarobot.com/api/v2"),Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 24 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
This skill covers SHAP insights, XEMP prediction explanations, anomaly explanations, and model diagnostics.
SDK version: Use
datarobot>=3.6.0for the full API set in this skill (ShapDistributionswas added in 3.6;ShapMatrix,ShapImpact, andShapPrevieware available indatarobot>=3.4.0). Usefrom datarobot.insights import ShapMatrix, ...withentity_id=model_id— not legacydatarobot.models.ShapMatrix(project_id/dataset_id).ShapMatrix,ShapImpact,ShapPreview, andShapDistributionsare the canonical SHAP API. The olderdr.PredictionExplanations(XEMP-based) remains available but is the secondary path.
| Goal | API to use | Prerequisites |
|---|---|---|
| SHAP values for all features, all rows | ShapMatrix.create(entity_id=model_id) | None - universal SHAP |
| Per-row top-feature explanations | ShapPreview.create(entity_id=model_id) | None |
| Aggregated feature importance via SHAP | ShapImpact.create(entity_id=model_id) | None |
| SHAP value distributions across features | ShapDistributions.create(entity_id=model_id) | None |
| SHAP for a filtered segment | dr.DataSlice.create(...) + ShapMatrix.create(..., data_slice_id=...) | Data slice definition |
| XEMP-based prediction explanations | dr.PredictionExplanations.create(...) | Feature Impact; PE initialization; dataset uploaded |
| Anomaly explanations (time series) | AnomalyAssessmentRecord.compute(project_id, model_id, ...) | Anomaly model |
| ROC / lift / confusion (insights) | RocCurve.create(...) / LiftChart.create(...) / ConfusionMatrix.create(...) | Validation data |
| ROC / lift / confusion (Model helpers) | model.get_roc_curve() / model.get_lift_chart() / model.get_confusion_chart() | Validation data |
Universal SHAP is the preferred path - no dataset pre-upload or Feature Impact step required.
Use this skill when you need to explain leaderboard model behavior, compute SHAP insights, use XEMP prediction explanations, analyze anomaly explanations, or retrieve model diagnostics.
ShapMatrix, ShapPreview, ShapImpact, and ShapDistributionsdr.DataSlicedr.PredictionExplanations when specifically requiredimport os
import datarobot as dr
from datarobot.insights import ShapMatrix, ShapImpact, ShapPreview, ShapDistributions
dr.Client(
token=os.environ["DATAROBOT_API_TOKEN"],
endpoint=os.environ.get("DATAROBOT_ENDPOINT", "https://app.datarobot.com/api/v2"),
)
datarobot.insightsimport pandas as pd
from datarobot.insights import ShapMatrix, ShapImpact, ShapPreview, ShapDistributions
model_id = "YOUR_MODEL_ID"
matrix = ShapMatrix.create(entity_id=model_id)
df = pd.DataFrame(matrix.matrix, columns=matrix.columns)
impact = ShapImpact.create(entity_id=model_id)
preview = ShapPreview.create(entity_id=model_id)
distributions = ShapDistributions.create(entity_id=model_id)
Use ShapMatrix for full row-by-feature SHAP values, ShapPreview for compact top-driver rows,
ShapImpact for aggregated SHAP importance, and ShapDistributions for per-feature SHAP
distributions. Use source="externalTestSet" plus external_dataset_id for external datasets.
See references/shap_api_reference.md for parameters, exports, and limitations.
Use dr.PredictionExplanations when XEMP explanations are specifically required (e.g., certain
regulatory contexts, or when SHAP is unavailable for the model type).
Prerequisites (all required before calling .create()):
model.request_feature_impact() and waitdr.PredictionExplanationsInitialization.create(...)import datarobot as dr
model = dr.Model.get(project=project_id, model_id=model_id)
model.request_feature_impact().wait_for_completion()
dr.PredictionExplanationsInitialization.create(project_id=project_id, model_id=model_id)
dataset = dr.Dataset.upload("./data/scoring_data.csv")
pe_job = dr.PredictionExplanations.create(
project_id=project_id,
model_id=model_id,
dataset_id=dataset.id,
max_explanations=5, # top N features per row, up to 50
threshold_high=0.5, # only explain rows with prediction >= threshold
threshold_low=0.1, # only explain rows with prediction <= threshold
)
pe_obj = pe_job.get_result_when_complete()
Use pe_obj.get_rows(), pe_obj.get_all_as_dataframe(), or pe_obj.download_to_csv(...) to
retrieve results. For parameters, multiclass modes, and exposure-adjusted predictions, see
references/xemp_pe_reference.md.
Use dr.DataSlice when the user asks to explain model behavior for a segment, such as a
region, product line, target class, or high-risk cohort. Pass the resulting data_slice_id into
the datarobot.insights SHAP APIs.
import datarobot as dr
from datarobot.insights import ShapMatrix
data_slice = dr.DataSlice.create(
name="high_income_customers",
filters=[{"operand": "income", "operator": ">", "values": 100000}],
project=project_id,
)
shap_matrix = ShapMatrix.create(
entity_id=model_id,
source="validation",
data_slice_id=data_slice.id,
)
For time series anomaly detection models, use AnomalyAssessmentRecord.
from datarobot.models.anomaly_assessment import AnomalyAssessmentRecord
record = AnomalyAssessmentRecord.compute(
project_id=project_id,
model_id=model_id,
backtest=0, # backtest index (int) or "holdout"
source="validation", # "training" or "validation" only
series_id=None, # required for multiseries projects
)
records = AnomalyAssessmentRecord.list(project_id=project_id, model_id=model_id)
latest = record.get_latest_explanations()
regions = record.get_predictions_preview().find_anomalous_regions()
explanations = record.get_explanations_data_in_regions(regions=regions)
ranged = record.get_explanations(
start_date="2024-01-01T00:00:00.000000Z",
end_date="2024-06-01T00:00:00.000000Z",
)
Use the same entity_id=model_id pattern as SHAP insights. FeatureEffects / partial dependence
is still retrieved through Model helpers (not in datarobot.insights).
from datarobot.insights import RocCurve, LiftChart, ConfusionMatrix
roc = RocCurve.create(entity_id=model_id)
lift = LiftChart.create(entity_id=model_id)
confusion = ConfusionMatrix.create(entity_id=model_id)
model = dr.Model.get(project=project_id, model_id=model_id)
roc = model.get_roc_curve(source="validation")
lift = model.get_lift_chart(source="validation")
confusion = model.get_confusion_chart(source="validation")
# Feature Impact (non-SHAP) and Feature Effects (partial dependence for top features)
fi = model.get_feature_impact()
feature_effects = model.get_feature_effect(source="validation")
prediction - base_value in the link-function spacebase_value: the model's mean prediction (the "no information" baseline)Example: if base_value = 0.35 and a row's prediction is 0.72, the row's SHAP values sum to
0.37 when link_function = "identity". A feature with SHAP +0.20 contributed 20 units in
that same link-function space above baseline.
When link_function = "logit", SHAP values are in log-odds space. Add feature contributions to
base_value in log-odds space, then use inverse-logit (scipy.special.expit) on the resulting
total to convert it to a probability. Do not apply expit to individual SHAP values as if they
were probability deltas.
Task: explain predictions
|
- Need all features + all rows? -> ShapMatrix.create(entity_id=model_id)
- Need top-N features per row? -> ShapPreview.create(entity_id=model_id)
- Need aggregated importance? -> ShapImpact.compute(entity_id=model_id)
- Need feature SHAP distributions? -> ShapDistributions.create(entity_id=model_id)
- Need a segment/cohort only? -> dr.DataSlice + data_slice_id
- XEMP required (regulatory/type)? -> dr.PredictionExplanations.create(...)
- Time series / anomaly model? -> AnomalyAssessmentRecord.compute(project_id, model_id, ...)
| Error | Cause | Fix |
|---|---|---|
SHAP not available for this model | Unsupported model type, or anomaly-detection model with >1000 features | Check model support; use XEMP PE if SHAP is unavailable |
Feature Impact not computed | PredictionExplanations prerequisite missing | Run model.request_feature_impact() and wait |
Missing PredictionExplanationsInitialization | PE not initialized | Call PredictionExplanationsInitialization.create() |
source='holdout' fails | Holdout not unlocked | Unlock holdout in project settings first |
Empty previews | No rows in partition | Check partition contains data |
references/shap_api_reference.md - full parameter signatures for ShapMatrix, ShapImpact, ShapPreview, ShapDistributionsreferences/xemp_pe_reference.md - PredictionExplanations and PredictionExplanationsInitialization parameter referencescripts/compute_shap_matrix.py - compute and export ShapMatrix to CSV or DataFrameFrequently asked questions
This skill covers SHAP insights, XEMP prediction explanations, anomaly explanations, and model diagnostics.
The source record exposes this install command: npx skills add https://github.com/datarobot-oss/datarobot-agent-skills --skill "skills/datarobot-model-explainability". Inspect the command and pinned source before running it.
Static rules flagged network in the source; the page lists the matching lines and excerpts.
Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
JasonColapietro/suede-creator-skills
Suede-owned experimentation discipline for hypotheses, sample sizing, test duration, significance, and repeatable experiment programs. Use when comparing variants, deciding whether a result is reliable, or building an experiment backlog and cadence. NOT FOR: analytics instrumentation (use suede-analytics), post-click conversion diagnosis (use suede-site-alchemy), or writing the variant copy itself (use suede-copy).
tenequm/skills
Decision validation and thinking frameworks for startup founders. Use when you need to pressure-test a decision, validate your next steps, think through strategic options, or sanity-check your approach. Triggers on phrases like "should I", "help me think through", "is this the right move", "validate my thinking", "what am I missing". Covers fundraising, customer development, runway management, prioritization, and crypto/web3 founder challenges.