machine-learning - 用于可解释机器学习的 Shapley 值和 SHAP 之间的差异
问题描述
关于模具封装的论文shap
给出了 (4) 中的 Shapley 值和显然在 (8) 中的 SHAP 值的公式
我仍然不太了解 Shapley 和 SHAP 值之间的区别。据我了解,对于 Shapley,我需要在每个可能的参数子集上重新训练我的模型,而对于 SHAP,我只是使用在所有参数上训练的基本模型。是这样吗?那么SHAP在计算上更容易吗?
解决方案
SHAP 结合了其他不可知方法的局部可解释性(例如 LIME,其中模型 f(x) 局部近似于每个因子 X 的每个实例的可解释模型 g(x))和 Shapley 值的博弈论方法。这会产生一些理想的属性(局部准确性、缺失性、一致性)。
回想一下,在公式 (4) 中,“局部”缺失,并且 Shapley(回归)值为因子 X(作为一个整体)分配了一个贡献分数。在公式 (8) 中,我们看到,SHAP 现在是 x 的函数。这意味着我们对每个因素都有贡献,特别是对于因素 Xi = xi 的每个已实现实例,这使得它可以在本地解释并继承所需的属性。
因此,SHAP 可以理解为 LIME(或相关概念)和 Shapley 值的组合。最后,SHAP 值只是“原始模型的条件期望函数的 Shapley 值” Lundberg 和 Lee (2017)。基本上,Shapley 值是为任何值函数定义的,SHAP 只是通过值函数的特殊定义的 Shapley 值的一个特例!
我和你有同样的问题,这是我对Lundberg 和 Lee (2017)论文的直观理解。希望这可以帮助。
推荐阅读
- c# - 将 SQL Server 与 MySQL 一起使用时出现“不支持选项”错误
- clang - AOSP 构建系统如何生成 .rsp 文件以及如何获取它们?
- javascript - 如果用户未登录,则在登录表单中重定向用户
- mysql - How to find if a customer was contacted thrice over a period of two days?
- apache-flink - Flink - 如何实现自定义会话窗口,在特定事件上创建窗口并在一段时间后触发?
- python-3.x - 如何修复由 n_jobs = -1 导致的虚拟环境和 Jupyter notebook 中的“PermissionError: [WinError 5] Access is denied”
- chipmunk - Does Chipmunk/Pymumk have culling of objects that are outside screen boundary?
- c++ - 当后续进程仅通过参数时,第一个进程保持运行的最佳 IPC 方法是什么?
- unreal-engine4 - UE UMG,当我addchild use C++时,slot丢失了我在blueprint中设计的Slot属性,如何保留?
- swift - 按下活动标签栏时如何加载 WKWebview 转到根页面?