添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

一. 为什么需要可解释

几点考虑:

  1. 若模型完全黑箱, 会有信任风险, 虽然 Performance 不错, 但在医学诊断等严肃领域, 同样要关心诊断依据.
  2. 人类天生的好奇心, 也想知道不同特征到底作了怎样的贡献.
  3. 对模型预测的 badcase 作诊断, 增强洞察, 辅助模型与特征的迭代.

模型可解释其实就是想弄懂不同特征到底做了怎样的贡献, 从解释粒度上可以这么分类:

  1. over the whole set
    这种好理解, 求一个特征全局视角下的贡献, 可以直接从训练集中把它拎出来, 观察模型收敛后的指标变化.
  2. for a particular prediction
    深度模型效果更好的原因之一就是拥有强大的非线性拟合能力, 也就是说同一个特征下的同一个特征值, 会随样本的变化而体现出不同的贡献(受同一个样本内其他邻居特征的影响), 这就导致了仅有全局解释是不够的, 粒度需要细化到具体的单次预测上.
    当能做到了单次预测, 自然也就能统计一个样本集合上的可解释数据了, 此时也拥有了全局视角. 所以本文工作搞单样本的可解释.

形式化定义

形式化的单样本可解释任务就是:
ϕ i R .
式(1)解读为对出现在待解释样本中的每个特征, 分配一个量化的贡献度.

本文主角是 shap 库, 预备知识是 联盟博弈论的 shapley-value.

二. 联盟博弈论中的 shapley-value

合作博弈论用于多人合作下的收益分配. 主要思想是: 列举出各种不同玩家之间的合作情况, 依据玩家参与与否的边际效应计算贡献.

直接用 shap 库中的公式了. 它是 classic Shapley value equation.
\phi_i=\sum_{S \subseteq F \backslash\{i\}} \frac{|S| !(|F|-|S|-1) !}{|F| !}\left[f_{S \cup\{i\}}\left(x_{S \cup\{i\}}\right)-f_S\left(x_S\right)\right] \tag 2 ϕ i = S F \ { i } F ! S ! ( F S 1 )! [ f S { i } ( x S { i } ) f S ( x S ) ] ( 2 )