问题标签 [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.
python - shap 中的错误 - AttributeError:模块“shap”没有属性“TreeExplainer”
当我使用时:
我收到此错误:
完整代码:
梯度提升分类器模型为:
python - SHAP 将图形保存为空白/白色,但 Matplotlib 可以很好地保存图形
我正在尝试在训练随机森林后绘制 SHAP 总结图。我使用 VSCode 连接到远程工作人员并在那里运行我的代码。当我运行我的代码来生成和保存图像时,它不会抛出任何错误,而只会生成一个白盒/空白图。此代码在下方(顶部)。不同寻常的是,当我在 SHAP 之外测试使用 Matplotlib 生成和保存图形时,但在这个 ssh 隧道上,它工作得非常好(底部)。
我正在使用 matplotlib 版本 = 1.5.1 和 SHAP 版本 = 0.34.0。值得注意的是我尝试调试它和我的设置的一些事情:(1)这个确切的代码在我不再有权访问的以前的工作人员上工作。对我来说,这表明这是环境配置的问题;(2) 我尝试使用plt.gcf()
将 SHAP 图转换为纯 matplotlib 对象并保存它,但这也不起作用;(3)我尝试plt.close()
在新的之前关闭情节()plt.figure()
,但这也没有奏效;(4) 我已经尝试了我当前的代码,无论是否有matplotlib=True
标志;(5) 我正在尝试生成许多 SHAP 图形(未显示),这些也产生了空白/白色图;(6) 我使用的是 Mac,远程工作人员是 Linux (Ubuntu)。
任何见解将不胜感激。谢谢。
当前代码——返回白框/空白图
SHAP 之外的 MATPLOTLIB -- 保存一个正常的绘图
python - 如何获取每个特征的 SHAP 值?
我目前正在使用 SHAP 库,我已经使用每个功能的平均贡献生成了我的图表,但是我想知道图表上绘制的确切值
如何获得图表中描绘的确切值?
python - 使用带有 RepeatDataset 和 BatchDataset 类型对象的 SHAP 解释使用 BERT 构建的模型
我使用预训练的 BERT 权重构建了一个有点复杂的模型。模型结构如下:
我使用了 RepeatDataset 类型的对象将数据提供给模型。它是使用以下代码创建的:
所以类型是:tensorflow.python.data.ops.dataset_ops.RepeatDataset
. 现在我想使用SHAP添加模型解释。
我已经尝试使用DeepExplainer
. 它试图获取数据的形状,在我的例子中是train_ds
. 但作为一种RepeateDataset
对象,它没有形状属性。我怎样才能克服模型?或者有没有其他方法可以将 SHAP 与RepeatDataset
类型对象一起使用?
python - 由于 Tensorflow 错误(张量不可散列),无法使用 SHAP GradientExplainer
我已经被这个错误困扰了很长时间,有没有办法在不降级我的 tensorflow 版本的情况下解决它?到目前为止,我发现的所有解决方案都推荐使用 TF<2.0,我不想这样做。当前 TF 版本 = 2.4.1,Keras 版本 = 2.4.3,使用 google colab
我正在尝试将 SHAP GradientExplainer 与 VGG 16 模型一起使用,以查看特定层如何影响预测。
代码是:
错误是:
scikit-learn - 单变量 IsolationForest 的 Shap TreeExplainer 的 IndexError
帮助!尝试解释 IsolationForest 时出现 IndexError。
我正在使用Scikit-learn
'sIsolationForest
进行异常检测。通常,我使用的数据集有多个变量——但有时它们只有一个。这适用于拟合和预测模型。但是,为了使用shap
's解释模型的输出TreeExplainer
,我得到一个IndexError
.
请参阅下面的最小可重现示例:
问题的根本原因似乎如下(见下面的代码):每个IsolationForest
都有多个隔离树。在 中TreeExplainer
,多个IsoTree
对象被初始化。在初始化期间,该行崩溃,因为self.features
,一个列表,包含 -2,这是超出范围的,因为tree_features
它只是一个数组 ( [0]
)。所以也许问题是在拟合 时IsolationForest
,给出了错误的值self.features
。
知道如何解决这个问题吗?
当然,对于单变量模型,使用 Shapley 值是没有意义的,因为您可以只使用score_samples
. 我打算将其用作解决方法,但肯定有一种更优雅的方式不需要这样做?
谢谢和最良好的祝愿,
亚历山大
python - 如何理解二元分类问题的 Shapley 值?
我对 shapley python 包很陌生。我想知道我应该如何解释二进制分类问题的 shapley 值?这是我到目前为止所做的。首先,我使用 lightGBM 模型来拟合我的数据。就像是
因为这是一个二分类问题。shap_values 包含两个部分。我假设一个用于 0 类,另一个用于 1 类。如果我想知道一个功能的贡献。我必须绘制两个如下图。
对于 0 级
但是我应该如何获得更好的可视化?结果无法帮助我理解“cold_days 是否增加了输出成为 1 类或成为 0 类的概率?”
使用相同的数据集,如果我使用 ANN,则输出是这样的。我认为 shapley 结果清楚地告诉我,“cold_days”将积极增加结果成为第 1 类的概率。
我感觉 LightGBM 输出有问题,但我不确定如何修复它。如何获得类似于 ANN 模型的更清晰的可视化?
#编辑
我怀疑我以某种方式错误地使用了 lightGBM 来得到奇怪的结果。这是原始代码
python - SHAP:如何获得分类变量的特征重要性?
我正在尝试将 SHAP 用于 ANN 模型解释。我发现当我使用
对于 dummy 之后的分类变量,特征重要性类似于
我想知道有什么方法可以直接获得特征重要性CategoricalFeature
吗?
python - 如何对已应用 PCA 的数据集使用 shap_value 解释器
这是我的代码。它运行完美,但返回带有“功能 1”和“功能 2”的摘要图。这完全有道理,因为我给了它一个仅包含 2 列的数据集。但是我的问题是,我怎样才能让它根据原始数据解释我的决策树的决策?
我已经尝试过此代码,并且它没有错误地工作,但我不确定我是否正确使用它。(不同的是我在分类器和 shap 中都将 df_2d 更改为原始 df)
感谢您的时间和帮助!