LIME 和 SHAP 可能不符合直觉的原因

数据挖掘 Python 可解释的ai
2022-03-12 17:57:43

我正在利用 Python 包limeshap解释一个基本的、经过训练的模型对新的表格数据所做的单个(测试集)预测。WLOG,两种方法产生的解释都不符合用户的直觉。

例如,当在医疗保健环境中利用这些方法时,他们可能会将合并症(一种经常与感兴趣的结果疾病同时发生的疾病)列为降低患者发生不良事件风险的因素。

直觉上,这种行为是不正确的。例如,我们不应该看到这会history of heart attacks 降低risk of adverse events. 我们可能会看到这些不一致的一些原因是什么?

我的一些想法

  • 类标签不平衡:尝试平衡数据集,没有解决问题
  • LIME 的内核宽度:正在调整这个,但粗略地说,没有任何好处
  • 与训练数据的关系:对于表格数据,两者都lime需要shap训练数据集作为输入来构建解释器类。如果存在诸如与结果history of heart attacks相关联的特征的实例,则no adverse event可以说,这些实例会“混淆”方法。但是,我不确定我的直觉是否正确。
  • 我的理解错误:这里的直觉可能存在我错过的细微差别。具体来说,我试图确保我正确理解生成的解释和用于构建它们的训练数据集之间的关系。
2个回答

正如 Sean Owen 所指出的,这可能与输入变量的相关性有关。

关于 LIME:您可以在此处阅读:https ://christophm.github.io/interpretable-ml-book/lime.html (第 5.7 段)为什么输入之间的相关性可能会造成问题,更具体地说是由于实施问题。(高斯采样忽略特征相关性)。

Shapley 值旨在通过构造考虑相关性(更具体地说,通过对称条件,暗示变量越相似,它们就越具有相似的效果)。但是,如https://arxiv.org/abs/1705.07874(第 4.2 段)所述,SHAP 依赖于输入的独立性来近似 Shapley 值。

因此,在用于具有重要相关性的数据时,您使用的两种技术都需要谨慎。

这是辛普森悖论的另一个版本。不应对频率数据进行过度的因果解释。