Python 理解不同SHAP方法的假设

Python 理解不同SHAP方法的假设,python,shap,Python,Shap,我对将SHAP值应用于我在机器学习中所做的一些工作很感兴趣,请注意,在github页面上可以选择许多不同的方法: 我有一个神经网络模型,据我所知,我可以使用这些函数:DeepExplainer、GradientExplainer或KernelExplainer。我知道DeepExplainer是基于DeepLift的,GradientExplainer是基于综合梯度的,但我真的很难找到每种方法所做假设的清晰轮廓是否有人能够澄清每种方法的假设,或为我指出这方面的来源方向? 明确地说,我不是在谈论每

我对将SHAP值应用于我在机器学习中所做的一些工作很感兴趣,请注意,在github页面上可以选择许多不同的方法:

我有一个神经网络模型,据我所知,我可以使用这些函数:DeepExplainer、GradientExplainer或KernelExplainer。我知道DeepExplainer是基于DeepLift的,GradientExplainer是基于综合梯度的,但我真的很难找到每种方法所做假设的清晰轮廓是否有人能够澄清每种方法的假设,或为我指出这方面的来源方向?


明确地说,我不是在谈论每一个的具体速度,我在考虑以下几点:它们中有没有假设模型的某些属性?他们是否假设输入是独立的?哪一种适用于一个热编码变量和连续变量的混合?简而言之,我找不到这方面的明确参考,甚至找不到GradientExplainer算法正在做什么的明确参考。

他们有
笔记本
文件夹,其中清楚地解释了每个算法,并显示了解释者的python版本。如果这还不够,您可以浏览源代码。此外,SHAP包看起来像是一个Python项目,用于支持Scott Lundberg等人在arXiv上发表的研究