用于可解释机器学习的 Shapley 值和 SHAP 之间的差异

Posted

技术标签:

【中文标题】用于可解释机器学习的 Shapley 值和 SHAP 之间的差异【英文标题】:Difference between Shapley values and SHAP for interpretable machine learning 【发布时间】:2020-01-31 20:21:55 【问题描述】:

The Paper 关于 die shap 包给出了 (4) 中的 Shapley 值和显然在 (8) 中的 SHAP 值的公式

我仍然不太了解 Shapley 和 SHAP 值之间的区别。据我了解,对于 Shapley,我需要在每个可能的参数子集上重新训练我的模型,而对于 SHAP,我只是使用在所有参数上训练的基本模型。是这样吗?那么SHAP在计算上更容易吗?

【问题讨论】:

由于这本身不是一个编码问题,您可能会在Cross Validated 或Data Science SE 上进一步询问。 【参考方案1】:

SHAP 结合了其他不可知论方法的本地可解释性(s.a. LIME,其中模型 f(x) 在本地近似,每个因子 X 的每个实例的可解释模型 g(x))和 Shapley 值的博弈论方法。这会产生一些理想的属性(局部准确性、缺失性、一致性)。

回想一下,在公式 (4) 中“局部”缺失,并且 Shapley(回归)值为因子 X(作为一个整体)分配了一个贡献分数。在公式 (8) 中,我们看到,SHAP 现在是 x 的函数。这意味着我们对每个因素都有贡献,特别是对于因素 Xi = xi 的每个实现实例,这使得它可以在本地解释并继承所需的属性。

因此,SHAP 可以理解为 LIME(或相关概念)和 Shapley 值的组合。最后,SHAP 值只是“原始模型的条件期望函数的 Shapley 值”Lundberg and Lee (2017)。基本上,Shapley 值是为任何值函数定义的,SHAP 只是通过值函数的特殊定义,Shapley 值的一个特例!

我和你有同样的问题,这是我对Lundberg and Lee (2017) 论文的直观理解。希望这会有所帮助。

【讨论】:

以上是关于用于可解释机器学习的 Shapley 值和 SHAP 之间的差异的主要内容,如果未能解决你的问题,请参考以下文章

学习打卡07 可解释机器学习笔记之Shape+Lime代码实战

学习打卡07 可解释机器学习笔记之Shape+Lime代码实战

学习打卡07 可解释机器学习笔记之Shape+Lime代码实战

学习打卡07 可解释机器学习笔记之Shape+Lime代码实战

10个最频繁用于解释机器学习模型的 Python 库

真香!利用 Shap 可完美实现机器学习模型输出可视化!