跳到主要内容

10 模型可解释性(SHAP)

04 章训出 AUC = 0.95 的模型,审稿人的下一个问题永远是:"为什么"。 SHAP(SHapley Additive exPlanations)是过去几年 ML 社区最广泛接受的可解释性框架,论文写起来漂亮、生信 reviewer 接受度极高。

SHAP 是什么 — 一句话定义

来自合作博弈论的 Shapley value 在 ML 上的迁移:

SHAP value φ_i = 特征 i 在某一个样本上对模型预测的"边际贡献"

数学性质:对单个样本 φ_1 + φ_2 + ... + φ_p = 模型预测 - baseline(平均预测)。这是它和"Permutation Importance"等其他方法的核心差异:SHAP 是加性分解,不只是排序。

SHAP 算法分流

算法适用模型速度实现
KernelSHAP任意黑盒(LR / SVM / RF / 神经网络)O(2^M) 慢iml::Shapley (R) / shap.KernelExplainer (Python)
TreeSHAP决策树系(RF / XGBoost / LightGBM)O(TLD²) 快treeshap(R) / shap.TreeExplainer(Python)
DeepSHAP深度神经网络shap.DeepExplainer(Python)
LinearSHAP线性模型解析解 极快iml::FeatureEffect(R) / shap.LinearExplainer(Python)

实务约定:

  • LR / SVM → LinearSHAP / KernelSHAP
  • RF / XGBoost → TreeSHAP(快 100x)
  • 神经网络 → DeepSHAP

BioF3 的 shap-explain 工具统一用 KernelSHAP(iml::Shapley)— 适配所有 04 章工具训出的模型,不依赖每个算法专用的 SHAP 后端(简化部署)。代价是 XGBoost 推理慢些(~17s/样本 vs TreeSHAP 0.5s),但 demo 数据规模下不影响。

4 类 SHAP 图

1. 全局重要性(Bar plot)

每个特征的 mean(|φ|) 排序条形图。这是最常出现在论文 figure 1 的 SHAP 图:回答"哪些特征对模型预测最重要"。

读图技巧:top 5 features 的 mean(|φ|)累计占比 > 50%,模型主要靠这几个基因决策;否则模型是"分布式特征贡献",signature 不易精简。

2. Beeswarm(蜂群图)

每个点 = 一个样本在该特征上的 SHAP 值。横轴 φ,颜色 = 该样本的特征原始值(蓝低 → 红高)。读法:

  • 红点集中右侧:高表达 → 推高正例概率(差预后 / 患癌相关)
  • 红点集中左侧:高表达 → 推低概率(保护性)
  • 红蓝混杂:非线性关系(交互或 U 型)

Beeswarm 是 SHAP 比传统 feature importance 强的核心 — 它同时给重要性 + 方向 + 数据分布

3. Force plot / Waterfall(单样本)

把单个样本的 φ_1 + φ_2 + ... 可视化成"从 baseline 推到最终预测"的过程。论文 case study 必备:讲"为什么模型把这个病人判为高危"比 AUC = 0.95 更打动评审。

shap-explain 工具 的 03-force-plot.png 直接给出。BioF3 demo 选 test 集第 1 个样本,展示 top 15 特征贡献 + 真实 label + 模型预测概率。

4. Dependence plot(依赖图)

横轴 = 某特征的原始值,纵轴 = 该特征的 SHAP 值。一眼看出:

  • 线性正相关:特征值越高 → SHAP 越高 → 推高正例概率
  • 阈值效应:某个值附近 SHAP 突变(BMI > 30 风险骤升)
  • 非单调 / U 型:中等值 SHAP 最大

dependence plot 比"系数"更精细 — Cox 系数告诉你"线性关系",dependence plot 告诉你"任何关系"。

在 ml-classifier 输出上跑 SHAP

ml-classifier 工具产出的 output/ 包含:

  • model_lr.rds / model_svm.rds / model_rf.rds / model_xgb.rds
  • data_test.csv(标准化后的 test X)
  • labels_test.csv(test y)
  • features_used.csv(特征列表)

直接跟 shap-explain 工具 接力:

  1. 跑完 ml-classifier,从历史记录复制 jobId
  2. 打开 shap-explain 工具,粘贴 jobId
  3. 选算法(默认 all)、top_n(默认 20)、n_explain_samples(默认 30)
  4. 工具自动读上游模型 + 数据,跑 SHAP,出 5 张 SCI 图

shap-explain 公开 demo

公开 demo 跑 LR + RF + SVM 3 算法 · 20 features · 20 samples · 端到端 60 秒 · top features = CLEC4M / CLEC4G / GDF2 / SLC5A1 / FCN2(LIHC Tumor 标志,文献支持)。

SHAP 5 个常见误读

"SHAP 值 = 因果" — SHAP 是 model-faithful 解释,不是 ground truth 因果。SHAP 高的特征 = 模型用它做决策,不一定 = 该特征因果导致疾病。Pearl 因果框架 ≠ SHAP

只看一个 force plot 下结论 — 单样本可能是 outlier,要看全局。force 是 case study 用,不是模型评价

跨算法 SHAP rank 完全一致 → 信号超强 — 通常说明数据信号过强或数据泄漏(label 信息渗到 feature 里)。健康的多算法 SHAP 应该是 "top 5 重叠 60-80%,具体顺序略有差异"

kernel SHAP 在 features > 50 时方差大 — sample.size 默认 30 的话,top features 还行,中等 features 的 SHAP 估计有较大随机性。BioF3 工具用 top_n=20 兜底

把标准化后的 SHAP 值直接当原始量纲解释 — ml-classifier 工具的 SHAP 是在 z-score 数据上算的,"GDF2 SHAP 0.05" 不是说"GDF2 表达升高 0.05 单位"。要解释成"GDF2 表达比平均高 1 个标准差时,正例概率提升 0.05"

SHAP 在生信论文里的 4 大用法

  1. Top features 当 biomarker 候选 — 论文 Figure X "10 个 SHAP top features 在外部队列上 KM 仍显著",再做实验跟进
  2. 个体化解释 — Force plot 讲"这个高危病人为什么是高危的",临床决策模型必备
  3. 跨模型 robust 信号 — 4 算法都给某个基因高 SHAP = 该信号方法无关,论文里写 "consistent across model architectures"
  4. 替代传统 feature importance — RF native importance 给 Gini 下降或 OOB 误差变化,SHAP 给加性分解,二者互补,但 SHAP 是单样本可解释

在线工具

shap-explain

shap-explain 工具 的输出报告 = 本章 4 类图 + 算法对比 + Methods 段写法模板。教程读完直接复用工具产出的图进论文。

Methods 段写法模板

SHAP analysis was performed using the iml R package (v0.11.4). For each
sample in the held-out test set (n=20), we computed Shapley values via the
KernelSHAP method (sample.size=30 coalitions per feature). To control runtime,
SHAP was restricted to the top 20 features ranked by upstream model
importance. Beeswarm plots were generated to show feature importance with
direction-of-effect, and force plots were used to provide individual-level
case studies. Citations: Lundberg & Lee, NeurIPS 2017; Molnar, iml R package
2021.

本章状态

✅ Wave 4 正文完成(2026-05-27)。配套工具 shap-explain 已上线公开 demo,jobId 接力的核心交互模式已实现。

AI 陪学

让 AI 陪我学这一篇

AI 会读这篇文章后给你 3-5 步学习计划, 逐步陪你学完,最后出 1-3 道题验证你掌握得怎么样。 登录后 AI 才能记住你的进度。

静态文件

离线资料下载

手册 HTML / PDF 已在后台预生成,点击后直接下载网站静态资源。