본문으로 건너뛰기
cccskills
무료GitHub에 공개

datarobot-model-explainability

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

실행 점수 미검증

설치 방법 보기

포함된 파일(4)

  • SKILL.md10.5 KB
  • references/shap_api_reference.md7.4 KB
  • references/xemp_pe_reference.md5.3 KB
  • scripts/compute_shap_matrix.py3.3 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

DataRobot Model Explainability Skill

This skill covers SHAP insights, XEMP prediction explanations, anomaly explanations, and model diagnostics.

SDK version: Use datarobot>=3.6.0 for the full API set in this skill (ShapDistributions was added in 3.6; ShapMatrix, ShapImpact, and ShapPreview are available in datarobot>=3.4.0). Use from datarobot.insights import ShapMatrix, ... with entity_id=model_id — not legacy datarobot.models.ShapMatrix (project_id / dataset_id). ShapMatrix, ShapImpact, ShapPreview, and ShapDistributions are the canonical SHAP API. The older dr.PredictionExplanations (XEMP-based) remains available but is the secondary path.


Quick Start

GoalAPI to usePrerequisites
SHAP values for all features, all rowsShapMatrix.create(entity_id=model_id)None - universal SHAP
Per-row top-feature explanationsShapPreview.create(entity_id=model_id)None
Aggregated feature importance via SHAPShapImpact.create(entity_id=model_id)None
SHAP value distributions across featuresShapDistributions.create(entity_id=model_id)None
SHAP for a filtered segmentdr.DataSlice.create(...) + ShapMatrix.create(..., data_slice_id=...)Data slice definition
XEMP-based prediction explanationsdr.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.

When to use this skill

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.

Key capabilities

1. SHAP insights

  • Compute ShapMatrix, ShapPreview, ShapImpact, and ShapDistributions
  • Filter insights with dr.DataSlice

2. XEMP and anomaly explanations

  • Use XEMP dr.PredictionExplanations when specifically required
  • Retrieve time series anomaly assessment records and explanations

3. Diagnostics

  • Retrieve ROC, lift, and confusion insights
  • Use Model helpers for ROC, lift, confusion, and feature effects

Setup

import datarobot as dr
from datarobot.insights import ShapMatrix, ShapImpact, ShapPreview, ShapDistributions

dr.Client()

Core API: datarobot.insights

import 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.


Secondary path: XEMP Prediction Explanations

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()):

  1. Feature Impact must be computed: model.request_feature_impact() and wait
  2. Prediction explanations initialized: dr.PredictionExplanationsInitialization.create(...)
  3. Scoring dataset uploaded to the AI Catalog
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.

Data slices for filtered insights

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,
)

Anomaly assessment (time series models)

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",
)

Model diagnostics

Use the same entity_id=model_id pattern as SHAP insights. FeatureEffects / partial dependence is still retrieved through Model helpers (not in datarobot.insights).

Insights diagnostics (preferred — matches SHAP API)

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 helpers (alternative)

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")

Interpreting SHAP values

  • Positive value: feature pushes prediction higher than baseline
  • Negative value: feature pushes prediction lower than baseline
  • Magnitude: size of influence; larger absolute value = stronger effect
  • Sum: all SHAP values for a row sum to prediction - base_value in the link-function space
  • base_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.


Decision guide

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, ...)

Common errors

ErrorCauseFix
SHAP not available for this modelUnsupported model type, or anomaly-detection model with >1000 featuresCheck model support; use XEMP PE if SHAP is unavailable
Feature Impact not computedPredictionExplanations prerequisite missingRun model.request_feature_impact() and wait
Missing PredictionExplanationsInitializationPE not initializedCall PredictionExplanationsInitialization.create()
source='holdout' failsHoldout not unlockedUnlock holdout in project settings first
Empty previewsNo rows in partitionCheck partition contains data

Reference files

  • references/shap_api_reference.md - full parameter signatures for ShapMatrix, ShapImpact, ShapPreview, ShapDistributions
  • references/xemp_pe_reference.md - PredictionExplanations and PredictionExplanationsInitialization parameter reference
  • scripts/compute_shap_matrix.py - compute and export ShapMatrix to CSV or DataFrame

Resources

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use when the user wants to design, build, code, simulate, or deploy an AI agent (not a predictive model) to DataRobot; mentions agent_spec.yaml, dr-assist, datarobot-agent-assist, dress rehearsal, swarm simulation, or the DataRobot agent template; wants to scaffold a LangGraph, CrewAI, LlamaIndex, NAT, or Base agent targeting DataRobot; wants to add an MCP server, backend API, or React frontend to a DataRobot agent application; or uses the DataRobot CLI (dr) to build or deploy an agentic custom application; or wants to harden, stress-test, or battle-test an agent. Covers the full workflow: agent design, agent_spec.yaml authoring, dress-rehearsal simulation via the DataRobot LLM Gateway, adversarial swarm simulation, template-based coding, and deployment.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datarobot-oss/datarobot-agent-skills322026년 10월 23일 업데이트

Use when the user wants to design, build, code, or deploy an AI agent on DataRobot; mentions agent_spec.yaml, dress rehearsal, the DataRobot agent template, LangGraph, CrewAI, LlamaIndex, NAT, Base agents, MCP servers, backend APIs, custom frontends, or the DataRobot CLI.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datarobot-oss/datarobot-agent-skills322026년 10월 23일 업데이트

Use when an agent assist user wants to deploy their agent, put it on DataRobot, get a link to it, or share it with others, the agent can run as a single container, and the project has no `infra/Pulumi.yaml`. Not for agents built from the agent template, which deploy with Pulumi through datarobot-agent-assist. Users usually just say "deploy" or "deploy to DataRobot" and won't mention containers, workloads or the CLI.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datarobot-oss/datarobot-agent-skills322026년 10월 23일 업데이트

Use when the user wants to adversarially test, evaluate, or harden an implemented AI agent before deployment; mentions swarm simulation, attack testing, persistence testing, evaluation criteria, or eval_report.md.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datarobot-oss/datarobot-agent-skills322026년 10월 23일 업데이트

Use when the user wants to configure LLM integration for a DataRobot agent application. This skill helps to change LLM model, switch between the LLM integrations the project supports (LLM Gateway, a DataRobot-deployed LLM, an external provider, an LLM Blueprint, and any others its config declares), or set up provider credentials. The skill reads the project's .datarobot/cli/llm.yml for the real options, interviews the user, then runs sync_llm_env.py with the chosen values as CLI args to merge into .env.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datarobot-oss/datarobot-agent-skills322026년 10월 23일 업데이트

Guidance for setting up CI/CD pipelines for DataRobot application templates using GitLab, GitHub Actions, and Pulumi for infrastructure as code. Use when setting up CI/CD pipelines, configuring deployments, or managing infrastructure for DataRobot application templates.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

datarobot-oss/datarobot-agent-skills322026년 10월 23일 업데이트

datarobot-oss의 스킬 모두 보기

이 스킬의 문제 신고