php调用datashap,模型解释–SHAP Value的简单介绍 | 文艺数学君

本文介绍了SHAP方法,一种用于模型解释的技术,结合了Shapley Value和LIME的优点。通过KernelSHAP的5个步骤详细阐述了其工作原理,并提供了使用Python SHAP库在XGBoost、LightGBM等模型上的应用实例。此外,还讨论了在PyTorch中创建模型时应注意的事项,以及如何在Iris数据集上进行SHAP解释和特征重要性分析。
摘要由CSDN通过智能技术生成

摘要这一篇文章主要介绍一下关于SHAP方法,会介绍关于Shapley Value的计算方式,通过举例进行说明。接着会举一个实际的例子,来说明如何使用SHAP来进行模型的解释,和对最后结果的可视化展示。

简介

这一篇是关于模型可解释性,文章会介绍关于SHAP Value的方法。同时介绍一下如何简单的绘制结果。还是把参考资料放在最前面。

在看这个之前, 建议先查看LIME和Shapley Value的相关的内容. 链接分别如下:

参考资料

SHAP Value方法的介绍

SHAP的目标就是通过计算x中每一个特征对prediction的贡献, 来对模型判断结果的解释. SHAP方法的整个框架图如下所示:

5a9be92a4b9e0d136d6dcd87db94e5ad.png

SHAP Value的创新点是将Shapley Value和LIME两种方法的观点结合起来了. One innovation that SHAP brings to the table is that the Shapley value explanation is represented as an additive feature attribution method, a linear model. That view connects LIME and Shapley Values.

SHAP解释的时候使用下面的表达式, 这个和LIME中的原理是相似的(最大的不同是SHAP中设置了不同的distance的定义, 我们后面会讲):

6db36717a3ecde395127fe8b0ed7fe10.png

上面的Simplified Features取值只能是{0, 1}, 当其取值为1的时候, 表示的是这个特征是present(也就是这个特征的取值与我们要解释的instance x中对应的特征是相同的), 当其特征是0的时候, 表示这个特征是absent(这时候我们从数据集中取一个这个特征的值, 其他数据在这个特征上的取值).

对于我们要解释的instance x来说, 也就是所有的Simplified Features都是1. 此时上面的式子可以化简为:

3106848236fe37f58c3bfb413de6a1ff.png

这个时候, 就可以看成每一个特征的Shapley Value的和做出的贡献, 使得预测结果从均值变为我们预测的结果, 也就是g(x').

在原始论文中, 作者提出了KernelSHAP和TreeSHAP. 下面我们只详细介绍KernelSHAP.

KernelSHAP的简单介绍

KernelSHAP包含下面的5个步骤:

初始化一些数据, z', 作为Simplified Features, 例如随机生成(0, 1, 0, 1), (1, 1, 1, 0)等.

将上面的Simplified Features转换到原始数据空间, 并计算对应的预测值, f(h(z')).

对每一个z'计算对应的权重(这里权重的计算是关键, 也是SHAP与LIME不同的地方)

拟合线性模型

计算出每一个特征的Shapley Value, 也就是线性模型的系数.

对于上面的第二个步骤, 我们做一下解释, 当Simplified Features是1的时候, 使用原始数据的特征, 当Simplified Features是0的时候, 我们使用其他的数据进行替换(这种置换的方式会存在一些问题, 当特征之间不是独立的, 而是相互有关联的, 那么这样生成的数据可能是实际上不存在的), 如下图所示.

32e9d1dba6dee800802908fbd26dcd5a.png

下面就是重点介绍对z'权重的计算了, 这个也是SHAP最大的不同. (The big difference to LIME is the weighting of the instances in the regression model.)

LIME根据相似度进行计算距离, 如sample的数据中有很多0, 也就是会和原始数据有很大的不同, 那么他的距离是远的, 也就是他的权重会是小的. (LIME weights the instances according to how close they are to the original instance. The more 0's in the coalition vector, the smaller the weight in LIME.)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值