问题标签 [lime]

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 回答
839 浏览

python - Lime explainer 显示与分类器预测不同的预测概率 - 情感分析

我正在使用 Lime 来追踪模型为什么决定预测这句话是(NEG、POS 或 NEUTRAL)背后的行为,并且在大多数情况下,lime 解释正确,但在这种情况下,为什么我输入 NEG 句子,模型将其预测为 NEUTRAL 但 Lime 以 NEG 最高百分比将其可视化,那么为什么我会出现这样的逻辑错误?

模型预测与石灰预测

0 投票
1 回答
131 浏览

r - 案例编号是否等于 Lime 中的数据行编号?

刚刚在 R 中发现了 Lime 包,但仍在尝试完全理解该包。我对使用“plot_features”的可视化感到困惑

请原谅我的天真。

我的问题是,每行的案例编号是连续的吗?换句话说,案例 416 是否等同于数据中的第 416 行?如果不是,我怎么知道每个案例编号所指的行?特征权重图

重现上图的示例代码:

编辑:在活检表中添加了一个名为 ID 的额外列

0 投票
1 回答
386 浏览

python - LIME ImageExplanation - 'ImageExplanation' 对象没有属性 'as_list'

我正在尝试恢复 LIME 算法在图像超像素上使用的权重。我完全能够恢复预测的地图和边界,但不能恢复权重。

我尝试了命令print(explanation.as_list())但我收到错误'ImageExplanation' object has no attribute 'as_list'

有谁知道该怎么做?

提前致谢。

编辑

我的实际代码是:

我需要恢复权重,但即使从文档中也找不到方法。谢谢!

编辑 2

我不知道它是否有帮助,但我在 Imagenet 上预训练的 keras 中使用了 v3 模型。x 是要解释的图像。

0 投票
1 回答
178 浏览

r - Lime 包无法获得 CaretStack 的预测

我通过将模型堆叠在一起构建了一个 Caret 集成模型。

该模型运行成功,我得到了令人鼓舞的结果。

当我尝试使用 Lime 来解释黑盒预测时,挑战就来了。我收到一条错误消息“模型的类必须有一个 model_type 方法”

我唯一一次遇到这种错误是在 H20 中使用 Lime 时。随后,Lime 背后的人发布了支持 Lime 中的 H20 的更新。

有谁知道是否有任何工作将 CaretStack 包含在 Lime 中?或者知道解决此问题的解决方法。

0 投票
4 回答
2992 浏览

r - `object` 和 `newdata` 中存储的特征名称不同!使用 LIME 包解释 R 中的 xgboost 模型时

我正在尝试使用 LIME 来解释我使用 XGboost 训练的二进制分类模型。从 LIME调用函数时遇到错误explain(),这意味着我的模型(或解释器)中有不匹配的列以及我试图解释预测的新数据。

LIME 的这个小插图确实演示了一个带有 xgboost 的版本,但是它是一个文本问题,与我的表格数据有点不同。这个问题似乎遇到了同样的错误,但对于文档术语矩阵也是如此,这似乎掩盖了我的案例的解决方案。我已经设计了一个最小的示例,mtcars它产生的错误与我在自己的更大数据集中得到的错误完全相同。

我假设因为explainer只有原始预测列的名称,其中转换状态的测试数据也有一个(Intercept)列,所以这导致了问题。我只是还没有想出防止这种情况发生的巧妙方法。任何帮助将非常感激。我认为必须有一个巧妙的解决方案。

0 投票
0 回答
336 浏览

deep-learning - 多输入 DNN 的 LIME 图像分类解释

我对深度学习还很陌生,但我设法构建了一个多分支图像分类架构,并产生了非常令人满意的结果。

不是那么重要:我正在研究 KKBox 客户流失 ( https://kaggle.com/c/kkbox-churn-prediction-challenge/data ),我将客户行为、交易和静态数据转换为热图,并尝试基于流失者分类在那。

分类本身工作得很好。当我尝试应用 LIME 来查看结果来自哪里时,我的问题就出现了。遵循此处的代码时:https ://marcotcr.github.io/lime/tutorials/Tutorial%20-%20images.html除了我使用输入列表 [members[0],transactions[0],user_logs[ 0]],我收到以下错误:AttributeError: 'list' object has no attribute 'shape'

我想到的是,LIME 可能不是为像我这样的多输入架构而设计的。另一方面,Microsoft Azure 也有一个多分支架构(http://www.freepatentsonline.com/20180253637.pdf?fbclid=IwAR1j30etyDGPCmG-QGfb8qaGRysvnS_f5wLnKz-KdwEbp2Gk0_-OBsSepVc),据称他们使用 LIME 来解释他们的结果(https://www.slideshare.net/FengZhu18/predicting-azure-churn-with-deep-learning-and-explaining-predictions-with-lime)。

我试图将图像连接到单个输入中,但这种方法产生的结果比多输入方法差得多。不过,LIME 适用于这种方法(尽管不像通常的图像识别那样易于理解)。

DNN 架构:

尝试的 LIME 利用率:

型号总结:

因此我的问题是:有人对多输入 DNN 架构和 LIME 有经验吗?有没有我没有看到的解决方法?我可以使用另一种可解释的模型吗?

谢谢你。

0 投票
1 回答
1094 浏览

python-3.x - 将石灰表格解释器与 Keras 一起使用时出现关键错误

我正在尝试使用 Lime 列出 Keras 神经网络回归模型的特征重要性。

我已经尝试了许多不同的代码变体,并不断得到一些版本的 KeyError: 4 ,其中数字不同。我尝试过更改目标标签和功能数量,以及是否将数据帧转换为数组。

我的模型:

还有我的石灰代码:

x_train 包括除吸收 pct 之外的所有特征,吸收 pct 是我的目标变量

我想获得一些表格数据,如本页所示:https ://pythondata.com/local-interpretable-model-agnostic-explanations-lime-python/

但不断得到:

0 投票
0 回答
263 浏览

python - LIME 特征值不匹配

我在 Python 3.7 中使用包 LIME,但输出在某些变量中似乎并不直观。

我得到以下结果,它应该可以工作

石灰输出

但是,如果您查看 LandUse6 的特征值,则来自 LIME 的变量重要性严格大于 0,并且特征值为 0。这不满足还是我如何解释这个值?

0 投票
0 回答
145 浏览

r - 有没有办法向 R 包中的函数添加方法?

我正在尝试使用石灰在我正在开发的包的输出中添加 ML 解释。我的解决方案使用库 gbm 中的梯度提升模型。石灰不支持这种类型的模型,所以我需要向泛型添加一个 gbm 方法:-model_type -predict_model

如果我手动执行此操作,逐行运行我的代码,我没有问题。
但是,一旦将石灰包含在函数中并且我尝试运行它,该函数似乎无法分配“gbm”方法。.

有人知道如何解决这个问题吗?

我也尝试过使用 setMethod,但随后我会收到一条消息说环境已锁定

我在包函数之外训练我的模型:

然后将其传递给函数:

定义为:

代码原样给出错误消息:“错误:模型类必须有一个 model_type 方法。请参阅 ?model_type 以获得开箱即用支持的模型的概述”

或者,如果我在分配方法时删除“.gbm”并删除前面的#

setMethod("model_type", "gbm", function(x, ...) "classification") 中的错误:环境 'SiteViewModelling' 被锁定;无法为函数“model_type”分配方法</p>

0 投票
1 回答
1706 浏览

python - 来自lime.lime_tabular 的LimeTabularExplainer 函数不起作用:ValueError:参数中的域错误

我正在尝试创建我记得之前工作但现在没有的 LimeTabularExplainer。我下面的试验认为会奏效,但没有奏效。请帮忙,提前谢谢!

我尝试检查 feature_names 是否是列表,它是。尝试删除 training_labels 参数,因为它在 LIME Docs中提到不需要尝试使用具有分类级别“YES”和“NO”的原始目标变量,并将其分别转换为 1 和 0。