问题标签 [shap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
45 浏览

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

[编辑:讨论移至 stat.stackexchange.com,链接在这里]

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

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

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

我的一些想法

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

python - 如何在 python 中计算 XGBoost 分类器的联合特征贡献?

我参考了http://savvastjortjoglou.com/intrepretable-machine-learning-nfl-combine.html#Joint-Feature-Contributions这个漂亮的文档来研究联合特征贡献。但这仅适用于 RandomForest 算法,因为树解释器(不适用于 xgboost)。XGBoost 是否也有类似的出路?

基本上我想要实现的是找出所有特征组合对预测的共同贡献。例如,如果我有 a、b 和 c 作为我的特征,我想知道 ab、bc 和 ca 对预测结果的影响。它与 shap 和 Lime 非常相似,但用于组合功能。

0 投票
0 回答
1079 浏览

python - 使用 shapley 进行线性回归时出错:TypeError: 'Lasso' object is not callable

我正在使用 shap 库来比较几个模型,其中一个是正则化线性回归,但是当我尝试创建解释器时:

我收到以下错误:

下面是重现此错误的代码:

0 投票
3 回答
4100 浏览

python - 将 `shap.summary_plot()` 的渐变颜色更改为特定的 2 或 3 RGB 渐变调色板颜色

我一直在尝试从shap.summary_plot()RGB 更改为感兴趣的颜色,例如 RGB。

为了说明这一点,我尝试使用 matplotlib 来创建我的调色板。然而,到目前为止它还没有奏效。有人可以帮我吗?

这是我迄今为止尝试过的:使用iris数据集创建示例(这里没问题)

直到这里,如果您运行代码,何时应该使用默认颜色获得摘要图。为了更改默认设置,我尝试创建我的 2 色渐变调色板,如下所示:

但我无法改变图形的颜色。:

在此处输入图像描述

有人可以解释一下如何制作它:

(A) 2 种渐变颜色或 (B) 3 种颜色渐变(在其他 2 种中间指定一种颜色)?

非常感谢您抽出宝贵的时间,

0 投票
2 回答
3767 浏览

python - Python Jupyter notebook SHAP force_plot,如何更改深色主题中的背景颜色或文本颜色?

在此处输入图像描述

有什么方法可以更改深色主题中的绘图背景颜色或文本颜色?我需要白色背景或白色文本。

该图是 IPython.core.display.HTML 的一个对象。

它是由

谢谢您的帮助!

0 投票
2 回答
2840 浏览

python - 随机森林的 TreeExplainer 的 expected_value 字段是什么?

我用 SHAP 来解释我的 RF

TreeExplainer 类有一个属性expected_value。我的第一个猜测是这个字段是预测 y 的平均值,根据 X_train (我也读过这里

但事实并非如此。
命令的输出:

是 0.2381。

命令的输出:

是 0.2389。

正如我们所看到的,这些值是不一样的。那么expected_value这里的意义是什么?

0 投票
1 回答
166 浏览

python - 从 shapely 库中获取变量列表

我正在使用 shap 库来获取变量重要性我遇到的问题是我只找到绘图选项,但我需要按顺序获取变量重要性列表。

0 投票
2 回答
1856 浏览

adaboost - 如何计算 ADABoost 模型的形状值?

我正在运行 3 个不同的模型(随机森林、梯度提升、Ada Boost)和基于这 3 个模型的模型集合。

我设法将 SHAP 用于 GB 和 RF,但不适用于 ADA,但出现以下错误:

我在 Git 上找到了这个链接

TreeExplainer从我们试图解释的任何模型类型创建一个 TreeEnsemble 对象,然后与该下游一起工作。所以你需要做的就是在

TreeEnsemble类似于梯度提升的构造函数

但我真的不知道如何实现它,因为我对此很陌生。

0 投票
3 回答
4902 浏览

python - 逻辑回归的沙普利?

shapley 是否支持逻辑回归模型?

运行以下代码我得到:

PS你应该为不同的模型使用不同的解释器

0 投票
2 回答
2931 浏览

r - 在 SHAPforxgboost 图中自定义标签

我正在创建一些 SHAP 分数图,用于可视化我使用 xgboost 创建的模型。我使用了运行良好的 SHAPforxgboost 包,现在我想在我正在编写的文本文档中使用这些数字(尤其是来自 shap.plot.summary() 的那个)。但是,x 轴和 y 轴上的标签/标题的字体大小非常小,我想知道是否有一种方法可以使它们变得更大且更具可读性。

我使用了非常相似的设置,如此处所示;https://www.rdocumentation.org/packages/SHAPforxgboost/versions/0.0.2

shap.plot.summary() 的输出是:像这样的东西

更具体地说,我有兴趣增加 y 轴上每个描述符的字体大小