模型解释知识介绍A Unified Approach to Interpreting Model Predictions

1. 解释算法背景

1.1 LIME

特点:局部、model-agnostic、instance-wise
方法:使用一个更简单的、围绕特定实例的本地可解释模型来近似复杂的ML模型

  1. 选择要解释的实例
  2. 生成一组相邻样本来干扰实例
  3. 使用复杂ML模型预测获得的扰动样本
  4. 拟合一个模型(例如,线性回归或决策树)对受干扰的样本及其预测
  5. 解释更简单的模型,为原始实例提供解释

请添加图片描述

目标函数

请添加图片描述

1.2 DeepLIFT

特点:使用深度学习
方法:深度学习的递归预测解释方法

请添加图片描述

1.3 Layer-Wise Relevance Propagation

特点:使用深度学习
方法:找出输入像素x的每个输入像素对特定预测的贡献

f ( x ) = ∑ d = 1 V R d f(x) = \sum_{d=1}^{V} R_d f(x)=d=1VRd在这里插入图片描述

1.4 Shapley regression values

特点:需要重新训练模型
方法:给每个特征分配一个重要性值,代表包括该特征对模型预测的影响

在这里插入图片描述

1.5 Shapley sampling values

特点:无需重新训练模型、计算更少
方法:对Shapley regression values公式抽样,通过对训练数据集中的样本进行积分来近似从模型中删除变量的效果

1.6 Quantitative input influence

特点:更广泛的框架
方法:几乎与Shaply抽样值完全相同

2. 提出的解释算法(Model-Agnostic)

2.1 Shapley sampling values

上面介绍过

2.2 Kernel SHAP

Linear LIME+shapley value
和传统LIME最大的不同:权重

  • LIME:实例与原始实例的接近程度
  • Kernel SHAP:联盟在 Shapley值估计中获得的权重

请添加图片描述

3. 提出的解释算法(Model-Specific)

3.1 Linear SHAP

适用:线性模型
假设:特征独立性

请添加图片描述

3.2 Low-Order SHAP

在2.2基础上,使用较低阶的 Shapley 值来解释模型的预测:
一阶 Shapley 值表示单个特征对于模型预测结果的贡献
二阶 Shapley 值表示两个特征之间的交互对于预测结果的贡献。
结果:可能会牺牲一些信息的精确度,但却能够在更短的时间内提供模型的解释结果,这对于大规模数据集或实时应用来说是非常有用的。

3.3 Max SHAP

使用 Shapley 值的排列公式,计算每个输入将最大值增加到其他每个输入的概率。

3.4 Deep SHAP

DeepLIFT + Shapley values
适用:任何模型,包括深度模型
将 DeepLIFT 中的参考值解释为 Shapley 值中的期望值

反向传播快速近似
请添加图片描述

4. TreeSHAP

4.1举例

在这里插入图片描述

假设样本有3个特征(x,y,z)和总共100个训练样本

假设现在要判断顺序{x=5,z=10}中z的边际贡献:

特征组合解释贡献值
{x=5}node1-node2-node8/9/10/1110*(15/60)+20*(5/60)+5*(30/60)+8*(10/60)=8
{x=5,z=10}node1-node2-node9/10/1120*(5/45)+ 5*(30/45)+ 8*(10/45)=7.3

m a r g i n a l c o n t r i b u t i o n ( z ) = { x = 5 , z = 10 } − { x = 5 } marginal contribution(z)=\{x=5, z=10\} -\{x=5\} marginalcontribution(z)={x=5,z=10}{x=5}

在这里插入图片描述

假设样本有2个特征(x,y)和总共10个训练样本
{}:(20* 4+30* 2+45* 3+60* 1)/10=33.5

对于排序{X = 130,Y = 65}:

  • X边际贡献:n1-n3-n6:45-33.4=11.5
  • Y边际贡献:0

对于排序{Y = 65,X = 130}:

  • Y边际贡献:60%20+40%(75%*45+25%*60)=31.5 31.5-33.5=-2
  • X边际贡献:45-31.5=13.5

最终SHAP值:
X:(11.5+13.5)/2=12.5
Y: (0-2)/2=-1

在这里插入图片描述

4.2举例-优化

上述算法依然有 2 M 2^M 2M的指数复杂度,我们不按照子集S构成的样本来一遍遍walk through这些树,而是通过树的结构来计算这些信息。遍历每棵树的每一个决策节点,记录子集的大小。
该算法递归查找树中的所有路径,并在每个路径的末尾,计算该路径对所有特征的所有SHAP值的贡献。因此,当算法覆盖所有路径时,它可以计算数据集中所有特征的SHAP值

  • 对于某个节点使用了特征x来做分裂条件:
    那么在经过这个节点时,不管特征组合如何变化,只可能有特征x的存在与缺失两种情况,对应到代码中的one path和zero path的fraction。 请添加图片描述
  • extend:增长path,更新zero/one fraction等信息
  • Unwind:判断path中是否已经对这个feature做过split了,如果是的话就undo掉,在这个节点再做split。

在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值