问题标签 [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 投票
1 回答
836 浏览

python - 将回归线添加到 shap.dependence_plot

shap.dependence_plot是否可以在shapPython 包的结果中添加回归线?

玩具示例:

是否可以以简单的方式绘制像 LOESS 这样的回归线?

0 投票
1 回答
2466 浏览

python - 使用 SHAP 时如何解释多类分类问题的 base_value?

我正在使用 shap 库来实现 ML 可解释性,以更好地理解 k-means 分割算法集群。简而言之,我做了一些博客,使用 k-means 对它们进行聚类,然后将这些聚类作为标签并使用 xgboost 来尝试预测它们。我有 5 个集群,所以这是一个单标签多类分类问题。

在此处输入图像描述

上面的图片很有意义,因为班级是“3”。但是为什么这个base_value,不应该是1/5吗?前段时间我问过自己一个类似的问题,但这次我已经设置了 link='logit'。

在此处输入图像描述

0 投票
1 回答
2713 浏览

python - 二进制分类中的特征重要性并仅提取其中一个类的 SHAP 值

假设我们有一个二元分类问题,我们有两类 1 和 0 作为我们的目标。我的目标是使用树分类器来预测给定特征的 1 和 0。此外,我可以使用 SHAP 值对预测 1 和 0 的特征重要性进行排名。直到现在一切都很好!

现在假设我想知道仅预测 1 的特征的重要性,那里推荐的方法是什么?我可以将我的数据分成两部分(名义上:)df_tot = df_zeros + df_onesdf_ones在我的分类器中使用,然后为此提取 SHAP 值,但是这样做的目标只有 1,因此模型并没有真正学会对任何东西进行分类。所以我想知道如何解决这样的问题?

0 投票
0 回答
392 浏览

python - 在 SHAP 力图中,有没有办法将 x 轴的值更改为自定义名称?

在 SHAP 力图中,有没有办法将 x 轴的值更改为自定义名称?

0 投票
0 回答
280 浏览

r - 活动集中的回归器退化错误

我想知道如何解决这个错误。我尝试在 R 中运行以下代码:

我收到以下错误:

################################################# ##########################我的df的结构是:

请让我知道如何解决此错误。

0 投票
0 回答
342 浏览

r - 随机森林模型的 shap 图

我想获得 Ranger/随机森林模型的变量的 Shap Contribution,并在 R 中有这样的图:

蜂群地块

我曾尝试使用以下库:DALEX、shapr、fastshap、shapper。我最终只能得到这样的情节: fastshap plot

有可能得到这样的地块吗?我试过网状包,它仍然不起作用。

0 投票
0 回答
176 浏览

python - 了解不同 SHAP 方法的假设

我有兴趣将 SHAP 值应用于我在机器学习中所做的一些工作,并注意到在 github 页面上可以选择多种不同的方法:https ://github.com/slundberg/shap

我有一个神经网络模型,据我所知,我可以使用以下功能:DeepExplainer、GradientExplainer 或 KernelExplainer。我知道 DeepExplainer 基于 DeepLift,而 GradientExplainer 基于集成梯度,但我真的很难找到每种方法所做假设的清晰轮廓。有没有人能够澄清每种方法所做的假设,或者指出我的来源?

需要明确的是,我不是在谈论每个的具体速度,我正在考虑以下几点:它们中的任何一个都假设了模型的某些属性吗?他们是否假设输入是独立的?哪些适合混合使用 one-hot 编码和连续变量?简而言之,我找不到明确的参考,甚至找不到 GradientExplainer 算法的明确参考。

0 投票
0 回答
208 浏览

python - 如何使 SHAP 的 DeepExplainer 与 deepctr 库一起使用

我正在使用 DeepCTR(版本0.7.5)keras 库来预测 ctr(使用 DeepFM)
https://deepctr-doc.readthedocs.io/en/latest/deepctr.models.deepfm.html
这是适合模型的代码的一个小示例:

但是当我尝试以下操作时:

我收到以下错误:

我查看了整个谷歌并尝试使用输入形状和 SHAP API,但对我没有任何帮助。
附加信息
模型输入格式(17 个值)为:

输出是:

0 投票
1 回答
3490 浏览

python - 用于 RandomForest 多类的 SHAP TreeExplainer:什么是 shap_values[i]?

我正在尝试绘制 SHAP 这是我的代码rnd_clfRandomForestClassifier

我明白这shap_values[0]是消极的,shap_values[1]也是积极的。

但是对于多类 RandomForestClassifier 呢?我有以下rnd_clf分类之一:

['Gusto'、'Kestrel 200 SCI 老式公路自行车'、'Vilano 铝制公路自行车 21 速 Shimano'、'Fixie']。

如何确定哪个索引shap_values[i]对应于我的输出的哪个类?

0 投票
1 回答
1503 浏览

python - shap.Explainer 构造函数错误,要求提供未记录的位置参数

我正在使用 pythonshap包来更好地理解我的机器学习模型。(来自文档:“SHAP(SHapley Additive exPlanations)是一种博弈论方法来解释任何机器学习模型的输出。”下面是我得到的错误的一个可重复的小例子:

根据堆栈跟踪,错误似乎发生在顶级函数调用中,而不是在对Impute(). 我也试过省略这data=部分,这会引发同样的错误。这对我来说似乎很奇怪,因为Explainer对象的文档源代码都没有提到任何data参数(我验证它来自我正在使用的同一包版本):

有任何想法吗?这是一个错误,还是我错过了一些明显的东西?