一、可解释性的分类:全局解释 vs 局部解释,模型内在解释 vs 事后解释,模型特定解释 vs 模型无关解释

说实话,我刚入行那会儿,对「可解释性」的理解特别简单——不就是看看模型为什么这么预测嘛。后来做项目做多了才发现,这里面门道很深。你想想看,一个线性回归和一个深度神经网络,解释起来能一样吗?

所以这一章,我想带你系统地梳理一下可解释性的分类体系。搞懂了这些分类,你以后选解释方法时就不会抓瞎了。

1.1 全局解释 vs 局部解释

这是最基础的一个分类维度。我个人的习惯是,先问自己一个问题:我想理解整个模型的行为,还是只想理解某一条预测的原因?

答案不同,选的方法就完全不同。

全局解释(Global Interpretation)

全局解释回答的是:「模型整体是怎么工作的?」

举个例子,你训练了一个信用评分模型。全局解释会告诉你:收入水平对评分影响最大,其次是负债率,年龄的影响相对较小。这种解释能帮你理解模型的整体逻辑。

适用场景:
  • 模型上线前的合规审查
  • 向业务方解释模型整体逻辑
  • 发现模型是否存在偏见(比如性别歧视)

我在做银行风控项目时,监管要求我们必须提供模型的全局解释。当时我们用了特征重要性排序和部分依赖图,才勉强过了合规这一关。

局部解释(Local Interpretation)

局部解释回答的是:「为什么这条样本被预测为这个结果?」

还是那个信用评分模型。某用户张三被拒贷了,他问「为什么?」。局部解释会告诉你:因为张三的负债率高达80%,而模型认为负债率超过60%就是高风险

适用场景:
  • 用户申诉或投诉处理
  • 模型调试(看异常预测的原因)
  • 个性化推荐的解释
我的经验: 实际项目中,全局解释和局部解释往往要配合使用。先用全局解释了解模型整体,再用局部解释深挖异常案例。我曾经遇到过一个模型,全局看特征重要性很合理,但局部解释发现某些样本的预测完全依赖一个噪声特征——这就是「辛普森悖论」在模型解释中的体现。

1.2 模型内在解释 vs 事后解释

这个分类维度,说白了就是看你的解释方法是「天生的」还是「后加的」。

模型内在解释(Intrinsically Interpretable Models)

有些模型,它的结构本身就自带可解释性。你不需要额外做什么,看一眼参数就知道它怎么决策的。

模型类型 可解释性来源 典型例子
线性模型 权重系数直接表示特征影响 线性回归、逻辑回归
决策树 树结构可视化,路径清晰 CART、C4.5
规则模型 if-then 规则,人类可读 RuleFit、BRCG
广义加性模型 每个特征的影响可单独展示 GAM、EBM

嗯,这里要注意:内在可解释不等于简单模型。比如 GAM 虽然可解释,但它的表达能力并不弱,能拟合非线性关系。

避坑指南: 我曾经在医疗诊断项目中,为了追求可解释性强行用了逻辑回归。结果模型 AUC 只有 0.65,根本没法用。后来换成了 XGBoost + SHAP 事后解释,AUC 到了 0.85,解释效果反而更好。所以别迷信「内在可解释」,模型性能永远是第一位的

事后解释(Post-hoc Interpretation)

事后解释是针对那些「黑箱模型」的。模型本身不透明,但我们通过一些技术手段,去窥探它的决策逻辑。

常见的黑箱模型包括:

  • 深度神经网络(DNN、CNN、RNN)
  • 集成模型(随机森林、XGBoost、LightGBM)
  • 支持向量机(特别是非线性核)

事后解释的方法有很多,比如:

  • 特征重要性:Permutation Importance、Gain Importance
  • 局部解释:LIME、SHAP
  • 可视化:部分依赖图(PDP)、个体条件期望(ICE)
  • 代理模型:用可解释模型去近似黑箱模型的局部行为
我的建议: 如果你在工业界做项目,90% 的情况都会用到事后解释。因为业务方往往要求模型精度高,而高精度模型基本都是黑箱。别想着说服业务方用线性模型,不如学会怎么给黑箱模型「打光」。

1.3 模型特定解释 vs 模型无关解释

这个分类维度,看的是解释方法是否依赖于模型内部结构。

模型特定解释(Model-specific Interpretation)

这类方法只能用于特定类型的模型。比如:

  • 决策树的可视化:只能用于树模型
  • 线性模型的系数:只能用于线性模型
  • CNN 的激活图:只能用于卷积神经网络
  • Transformer 的注意力权重:只能用于注意力机制模型

模型特定解释的好处是:解释结果往往更精确、更深入。因为它利用了模型内部的结构信息。

举个例子,我在做图像分类项目时,用 Grad-CAM 生成热力图,能精确看到模型关注了图像的哪些区域。这种解释方法只适用于 CNN,但效果非常好。

模型无关解释(Model-agnostic Interpretation)

模型无关解释不关心模型内部结构,只关心模型的输入和输出。它的通用性很强,任何模型都能用。

常见的模型无关方法:

  • Permutation Feature Importance:通过打乱特征值观察预测误差变化
  • Partial Dependence Plot (PDP):观察某个特征变化时预测值的变化
  • LIME:在局部用线性模型近似黑箱模型
  • SHAP:基于博弈论的 Shapley 值分配特征贡献
核心区别:
维度 模型特定解释 模型无关解释
通用性 低(只适用于特定模型) 高(适用于任何模型)
解释精度 高(利用内部结构) 中等(仅基于输入输出)
计算成本 低(通常直接提取) 高(需要多次模型调用)
实现难度 依赖模型框架 通用库即可(如 shap、lime)
注意: 模型无关解释虽然通用,但有一个致命缺陷——它可能不忠实于模型的实际决策逻辑。比如 LIME 在局部用线性模型近似,如果模型在局部区域是非线性的,那解释结果就可能失真。我曾经在 XGBoost 模型上用 LIME 做解释,结果发现 LIME 给出的特征重要性和 SHAP 完全相反——后来排查发现是 LIME 的采样范围设置不合理。

1.4 三种分类维度的交叉组合

这三种分类维度不是孤立的,它们可以交叉组合。我画了一张图来展示它们的关系:

可解释性分类体系 维度一:解释范围 全局解释(整体行为) 局部解释(单条预测) 维度二:解释时机 模型内在解释(天生可解释) 事后解释(黑箱窥探) 维度三:方法依赖 模型特定解释(依赖内部结构) 模型无关解释(仅输入输出)

你看,这三个维度就像三个坐标轴,每个解释方法都可以在这个三维空间中找到自己的位置。比如:

  • 线性回归的系数:全局 + 内在 + 模型特定
  • SHAP 值:局部 + 事后 + 模型无关
  • 决策树的可视化路径:局部 + 内在 + 模型特定
  • Permutation Importance:全局 + 事后 + 模型无关
实战建议: 我一般会这样组合使用:
  1. 先用 全局 + 事后 + 模型无关 的方法(如 Permutation Importance)快速了解模型整体
  2. 再用 局部 + 事后 + 模型无关 的方法(如 SHAP)深挖异常案例
  3. 如果模型有内部结构可用(比如树模型),再用 模型特定 的方法做精确解释
这样既高效又全面。

1.5 小结

这一章我们聊了可解释性的三种分类维度。说白了就是:

  • 全局 vs 局部:看整体还是看个体
  • 内在 vs 事后:天生可解释还是后加解释
  • 特定 vs 无关:依赖模型结构还是通用方法

搞懂这些分类,你就能根据项目需求快速定位合适的解释方法。比如监管要求全局解释,你就别拿 LIME 去糊弄;用户投诉个案,你就别拿特征重要性去搪塞。

下一章,我们会深入讲解最常用的模型无关解释方法——Permutation Feature Importance 和 Partial Dependence Plot。到时候我会拿一个真实的信贷评分模型来演示,敬请期待。


专注资料整理