# Ml Explainability Xai

> 黑箱模型的解释技术选型与正确用法。当用户问"LIME/SHAP/saliency 怎么选"、"特征重要性 为什么互相矛盾"、"模型为什么这样预测"、要向监管/客户解释黑箱决策、或想把事后解释当 因果证据用时激活。动作：按动机定要求(信任/调试/合规)→内在可解释vs事后解释选型→全局 重要性找数据问题、个案解释做申诉复核→高保真vs高可用权衡。不适用于本身透明的模型 (ml-rule-learning)、因果归因(ml-causal-inference)。触发词: explainability 可解释性, LIME, SHAP, saliency, feature importance 特征重要性, 解释黑箱

- Skill: `fieldlu/ml-explainability-xai` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add fieldlu/ml-explainability-xai`
- Raw SKILL.md: https://api.skillmd.com/api/skills/fieldlu/ml-explainability-xai/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: fieldlu (https://skillmd.com/u/fieldlu)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/fieldlu/ml-explainability-xai

---


# 可解释性方法论 — 先问"解释给谁看、干什么用"，再挑工具

## R — 原文 (Reading)

> （转述）Ribeiro 等指出：人们对模型的信任有两个层面——相信它在预测，与相信它能被部署；全局指标掩盖不了单个样本上不可理喻的行为。他们主张用局部忠实：在待解释样本邻域内拟合一个可理解的线性代理，以此近似黑箱在该点附近的决策依据（LIME）。
>
> — Marco Ribeiro 等, ""Why Should I Trust You?": Explaining the Predictions of Any Classifier" (KDD 2016)

> （转述）Lundberg 等把 Shapley 值从合作博弈论引入特征归因：把预测视为各特征的联合产出，按公理化公平原则（有效性/缺失性/一致性）将贡献唯一地分派给每个特征（SHAP），并给出与多种既有归因方法的统一视角。
>
> — Scott Lundberg & Su-In Lee, "A Unified Approach to Interpreting Model Predictions" (NeurIPS 2017)

> （转述）显著性图类方法（对输入求梯度并可视化）成为视觉模型解释的主流直觉工具；但后续研究反复提醒：梯度饱和、平滑选择等实现细节会让同一模型对同一样本给出截然不同的"解释"，解释的稳定性本身需要检验。
>
> — saliency map 方法族的社区共识（Simonyan 2014 起源；Adebayo 2018 等健全性检验）

---

## I — 方法论骨架 (Interpretation)

可解释性不是一个属性，是三种不同的需求，混着谈必然选错工具：

- **信任动机**（用户/业务方愿不愿意采纳）：要的是"这个决定讲得通"，个案级故事即可；
- **调试动机**（开发者找模型哪里学坏了）：要的是暴露异常模式——重要性排序里冒出不可能的特征（如病历号），就是数据泄漏或管道 bug 的信号；
- **合规审计动机**（监管要求可申诉的决策）：要的是稳定、有文档、可复现的解释，且方法本身经得起质证——这里事后解释的随意性是大问题。

**选型的第一刀**：内在可解释 vs 事后解释。若可解释是硬约束且精度代价可承受（信贷规则、医疗筛查初筛），直接用透明的模型族（线性/树/规则），解释即模型本身，无忠实度问题；若必须用黑箱（精度差距不可放弃），才进入事后解释工具箱。

**事后解释三件套**：
- **LIME**: 在目标样本邻域扰动采样、拟合稀疏线性代理——快、直观、任意模型可用，但每次结果有随机波动，适合快速个案侦查；
- **SHAP**: 博弈论分派的公理化归因——理论性质好（加和一致）、有统一实现，但计算贵、且"分派公平"不等于"特征在现实中起因果作用"；
- **saliency/反事实解释**: 视觉场景看热力图，或问"改动哪个输入最少能翻转预测"——后者特别适合申诉场景（"收入再高两万就会通过"）。

**正确用法与误用的分界线**：全局重要性排序用于找数据与管道问题、校验模型是否依赖合理证据；个案解释用于申诉复核与人机协同。误用是把事后解释读成因果声明——"SHAP 说年龄贡献最大"只说明模型用了年龄，不说明改年龄会改变真实结果。**高保真 vs 高可用的权衡**贯穿全程：越忠实的解释往往越难懂（完整 SHAP 交互矩阵没人看得懂），越易懂的代理越可能失真——选型时必须声明你牺牲了哪一头。

---

## A1 — 文献中的经典应用 (Past Application)

*（本批主题超出西瓜书覆盖范围，A1 改引学界公认的经典案例与公开记录）*

### 案例 1: LIME 论文的医生与雪狼问题
- **问题**: 文本/图像分类器准确率很高，但用户无从判断它是在学语义还是在学捷径伪影；论文作者需要一个让非算法岗（如医生）也能逐案检查模型的手段。
- **方法论的使用**: 对单张医学影像/单篇文档在邻域内扰动，训练稀疏线性代理，把"模型此刻在看哪里"翻译成人类可核对的证据。
- **结论**: 个案级局部解释能揭示全局指标看不见的失败模式（模型盯住背景伪影而非病灶区域）。
- **结果**: LIME 确立了"局部忠实代理"范式；同一论文还提出"挑选代表性子集做整体体检"的子模选择法，成为后来全局解释实践的雏形。

### 案例 2: SHAP 对既有归因方法的统一
- **问题**: 当时特征归因五花八门（逐特征置换、梯度×输入、树路径贡献……），同一模型不同方法给出互相矛盾的重要性，从业者无所适从。
- **方法论的使用**: Lundberg 证明这些方法可视为 Shapley 值在不同假设下的近似，并用公理（尤其"一致性"：模型若更依赖某特征，其归因不应下降）作为评判标准。
- **结论**: 满足公理的归因具有唯一形式，工程上有 TreeSHAP 使树模型精确计算可行。
- **结果**: SHAP 成为工业界事实标准（主流框架内置输出）；同时"一致性公理淘汰了一批会自相矛盾的旧归因"也确立了"解释方法本身要有理论标准"的行业预期。

### 案例 3: 显著性图的健全性危机
- **问题**: 视觉社区广泛用梯度热力图说明"模型看哪里"，直到有研究者质疑：这些图到底反映模型行为，还是主要反映输入与网络结构？
- **方法论的使用**: Adebayo 等设计控制实验——把模型权重随机化、或换上随机标签重训，观察热力图是否随之崩坏；真正传递模型信息的解释应当对模型参数敏感、对无关变化不敏感。
- **结论**: 部分流行方法在完全随机化的网络上仍输出貌似合理的显著图——这样的"解释"没有传达任何模型信息。
- **结果**: 社区形成共识：解释方法需要像模型一样接受健全性检验；这直接写入本 skill B 段的鲁棒性警告，也是"高保真 vs 高可用"权衡的实证来源。

---

## A2 — 触发场景 (Future Trigger) ★

### 用户会在什么情境下需要这个 skill?

1. 用户训了一个黑箱模型（XGBoost/深度网络），业务方或导师追问"凭什么信它"，需要一份说得出口的解释方案。
2. 用户跑出 SHAP/LIME 后困惑：不同方法给出的特征重要性排序不一致，甚至同一种方法两次运行结果都不同——不知道该信谁。
3. 用户处于强监管行业（信贷/保险/医疗），被要求"每个拒绝都要能解释"，纠结黑箱+事后解释够不够格。
4. 用户想借解释做调试：怀疑模型学了不该学的东西（捷径特征/泄漏信号），希望用重要性分析定位。
5. 用户想把"特征重要性高"直接说成"该特征导致了结果"（例如拿 SHAP 报告指导业务干预），需要有人拦住这个滑坡。

### 语言信号 (用户的话里出现这些就应激活)

- "**可解释性**/**explainability**/**interpretability**"/"模型是个**黑箱**怎么解释"
- "**SHAP**/**shapley**/**LIME** 怎么选"/"两个方法的**重要性排序**不一样"
- "**特征重要性**为什么这么怪"/"feature importance"/"模型为什么这样**预测**"/"why this prediction"
- "** saliency**/**热力图**/**attention 可视化**靠不靠谱"
- "**监管**要解释/**合规**审计/**申诉**"/"每个决策都要能给客户讲清楚"
- "**counterfactual explanation** 反事实解释"/"surrogate model 代理模型"

### 与相邻 skill 的区分

- 与 `ml-rule-learning` 的区别: rule-learning 是"模型本身可解释"的路线（if-then 规则即模型）；本 skill 是对已选定的黑箱模型做事后解释。"要不要干脆换成透明模型"是两边交界处的选型问题——可解释为硬需求时先考虑那边。
- 与 `ml-causal-inference` 的区别: 解释回答"模型用了什么"，因果回答"现实里什么导致什么"；事后解释的归因不是因果效应。用户拿着解释报告设计业务干预时，移交那边重新立项。
- 与 `ml-diagnosis` 的区别: diagnosis 用偏差-方差归因"效果为什么不好"；本 skill 的解释可以充当诊断的证据来源之一（重要性里出现泄漏特征 → 移交 `ml-leakage-defense` 深挖），但不负责效果归因本身。
- 与 `ml-pitfall-audit` 的区别: audit 是上线前六问总审；本 skill 可作为 audit 中"模型依赖的证据是否合理"一问的工具箱。

---

## E — 可执行步骤 (Execution)

当 skill 被激活后, agent 应按以下步骤执行:

1. **动机定档**
   - 追问/判定解释的真实用途：信任采纳 / 开发调试 / 合规审计？受众是谁（算法工程师/业务方/监管）？
   - 完成标准: 一句话卡——"解释服务于 X 动机，受众 Y，因此要求 Z（稳定性/易懂性/可申诉性）"。
   - 判停条件: 用户其实想要的是"模型效果为什么差"的归因 → 移交 `ml-diagnosis`；用户在质疑数据是否有泄漏 → 直接走 `ml-leakage-defense`。

2. **路线第一刀**
   - 判断可解释是否硬约束、精度代价能否承受：能承受 → 建议透明模型族（衔接 `ml-rule-learning`/线性/GAM 类），结束事后解释讨论；不能 → 进事后解释流程。
   - 完成标准: 选型理由写明（含被放弃选项与原因）。
   - 判停条件: 用户选定透明模型路线 → 本 skill 使命完成，移交对应模型族 skill 施工。

3. **工具匹配**
   - 按模型类型与动机选：树模型 → TreeSHAP（精确高效）；任意模型个案速查 → LIME（注意多次运行取稳健集合）；视觉 → saliency（须配健全性抽检）+ Grad-CAM 族；申诉场景 → 反事实解释（给"怎样就能过"的最小改动）；全局体检 → SHAP 汇总图 + 排序稳定性检查。
   - 完成标准: 工具清单 + 每个工具在本场景的已知局限声明。
   - 判停条件: 用户环境跑不动所选工具（计算/依赖不可行）→ 降级到次优可行组合并记录精度损失，不空谈理论最优。

4. **执行与稳定性验证**
   - 跑所选解释；对关键结论做扰动复核：重复运行（LIME 的采样噪声）、换相邻样本（局部解释的外推范围）、随机化对照（saliency 是否随权重乱化而失效）。
   - 完成标准: 给出"该解释在 X 扰动下保持/失去稳定"的结论；不稳定的解释降级为"仅供探索"并明示。
   - 判停条件: 所有候选解释均不稳定且场景是合规审计 → 回步骤 2 重议透明模型路线，禁止拿不稳定解释交差。

5. **交付纪律**
   - 全局层报重要性排序并标注用途（找数据问题/校验证据合理性）；个案层给具体样本的归因或反事实建议；全文禁止因果措辞（"因为/导致/提升 X 会带来 Y"），一律改为"模型依据/贡献分解"。
   - 完成标准: 交付物含解释 + 局限声明 + "本解释非因果声明"的显式标注。
   - 判停条件: 交付物将被用于对外因果宣传 → 拒绝签字并移交 `ml-causal-inference` 重新立项；正常用途 → 流程结束。

---

## B — 边界 (Boundary) ★

### 不要在以下情况使用此 skill

- 模型本身就是透明的（线性系数/单棵小树/规则集）：解释已经内建，再套一层 LIME/SHAP 是脱裤子放屁，还会引入代理误差；此时的问题通常是"系数该怎么读"，不需要本 skill。
- 目标是因果效应估计或业务干预决策: 事后解释不提供 do 层信息，请走 `ml-causal-inference`。
- 目标是提升模型精度: 解释不涨点；发现可疑模式后的修复工作属于特征工程/泄漏防御/诊断的范畴。

### 文献反复警告的失败模式

- **把事后解释当因果声明**: "SHAP 显示收入最重要 → 提高客户收入就能降低违约"——归因描述的是模型的内部记账，不是世界的运行机制；干预问题只有因果工具能答。
- **相同样本不同解释**: 同一样本上 LIME 多次运行、不同解释方法之间、甚至超参微调都会改变归因排序；只跑一次就下结论等于掷骰子（Ribeiro 自己在论文中列出的 LIME 固有不稳定性）。
- **显著性图的幻觉**: 随机权重的网络也能产出结构清晰的显著图——好看的热力图不等于模型真的在看那里；未经健全性检验的热力图不得作为证据引用。
- **解释的对抗脆弱性**: 已证明攻击者可以在不改变预测的前提下操纵解释内容；在对抗风险高的场景，解释不能承担安全职能。
- **平均重要性的误导**: 全局排序把异质人群压成一个数字——模型可能对 A 人群用收入、对 B 人群用年龄；全局图之外要看分组解释。

### 作者盲点 / 时代局限（本批为外推补全）

- **必须声明**: 本 skill 主题超出西瓜书覆盖范围——书中可解释性仅以决策树/线性系数/规则学习等"内在可解释模型"形态存在（见 `ml-rule-learning`），对黑箱模型的事后解释技术完全缺席；本 skill 是对该盲点的补全，素材为 2016-2023 交叉学科文献共识转述，**方法论仍在快速演化**（机械可解释性、基于大模型的自然语言解释等新方向尚未定型），执行时应核对最新进展。
- **"可解释性"至今缺乏统一定义与度量**: 忠实度（解释是否反映模型真实计算）与合理性（人类觉得是否有道理）是两个可能冲突的标准，文献中评价体系仍碎片化——本 skill 只能给出操作纪律，无法给出普适的"好解释"判据。
- **合规有效性存疑**: 监管是否接受事后解释（尤其对高风险决策）仍在政策演进中；"给了 SHAP 报告就算满足解释义务"在任何司法辖区都不是既定结论，需咨询合规专业意见。
- 深度网络的机械可解释性（内部回路级解释）与特征归因是两条几乎不相交的路线，本 skill 只覆盖后者。

### 容易混淆的邻近方法论

- **解释 ≠ 可解释建模**: 前者是黑箱外挂说明书，后者是从源头选透明模型；硬合规场景后者才是正解，前者只是折衷。
- **注意力 = 解释?**: Transformer 注意力权重常被展示为"模型在看哪里"，但注意力≠归因（多层传播后权重语义漂移）；要用作解释须另行论证，不能默认成立。
- **敏感度分析 ≠ 特征归因**: 全局敏感度（Sobol 类）回答"输出的方差有多少来自某输入的不确定性"，与个体预测的归因是不同问题；二者数值常不一致且都正确。
- **解释驱动调试 ≠ 泄漏排查**: 解释里出现异常高的特征是泄漏的线索，但确认要走 `ml-leakage-defense` 的专项清单，不要就地拍板。

---

## 相关 skills

- depends-on: ml-methodology-router（总入口）
- contrasts-with: ml-rule-learning（内在可解释 vs 事后解释）, ml-causal-inference（模型归因 vs 世界因果）
- composes-with: ml-diagnosis（解释作为诊断证据源）, ml-leakage-defense（异常重要性→泄漏深挖）, ml-pitfall-audit（六问中证据合理性一问的工具箱）

---

## 审计信息

- **来源性质**: 扩充批E·交叉学科——主题超出西瓜书(2016)覆盖范围，R 段为公认文献的转述表述（均已标注"（转述）"）
- **验证通过**: 待流水线三重验证复核
- **测试通过率**: 待阶段 4 测试 (详见 test-prompts.json)
- **skill_version**: 0.0.1
- **蒸馏时间**: 2026-08-24

