问题标签 [dalex]

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

r - 将 DALEX 解释函数应用于 xgboost 模型以进行 what_if / centerisParibus 分析

我在尝试将what_if分析应用于xgboost模型时遇到了困难。我能够为模型运行what_if分析,randomForest但是当我尝试为xgboost模型运行它时它会中断。

我的问题是,给定titanic数据集,我该如何制作what_if情节?我在代码中添加了注释,以显示代码何时对我不利。

我知道我对这new_xgb_observation部分做了一些不正确的事情,但是what_if(据我所知)需要一个单一的观察,所以我试图从dtest矩阵中提取一个单一的观察。

这是对我来说破坏的代码部分:

然后我在它下面展示一个工作randomForest模型。

数据:

0 投票
0 回答
120 浏览

r - 如何使 tidymodels 或工作流结果与 DALEX 解释一起工作?

我想使用modelStudio,为此我需要使用DALEX::explain()将模型对象作为参数来制作解释器。我应该,但我不确定如何在这里为整个可重现的示例代码提供数据!

当我使用以下代码时

以下解释器有效:

但是当我使用整个工作流程并尝试使用 提取模型pull_workflow_fit时,它会说它无法预测。

两种情况下的类都是_xgb.Booster model_fit.

xgbtidymodels 或工作流中的哪个函数将渲染与(上面的第一个代码块)模型完全匹配的对象?

0 投票
0 回答
177 浏览

r - 如何在 R XGboost 中找到每个预测的重要变量

我正在将 xgboost 应用于以下数据集并进行预测,我还能够获得整个模型最重要的特征,但是我也想知道每个预测中最重要的特征,我能够使用 dalex 包查找每个预测的重要变量但得到错误

请在下面找到代码

使用 break_down 时出现错误错误是

break_down(explainer_xgb,observation = nobs)中的错误:未使用的参数(observation = nobs)

当我使用下面的代码时,它没有给出错误,但是当我尝试对我的数据集使用相同的逻辑时,我得到了错误。

下面的代码运行没有错误

如果有人可以帮助我,如果有任何其他方法可以为每个预测找到最佳属性,我将不胜感激,我正在寻找其他替代解决方案的原因是因为我有超过 300 万行的数据框并且使用 dalex 会非常耗时。

0 投票
1 回答
69 浏览

r - 尝试解释 iris 随机森林模型时出现 DALEX 错误

我想用 RandomForest 模型的 Dalex 创建解释器,但是在尝试时出现此错误:

任何人都知道如何解决这个问题?

这是我的代码:

谢谢!

编辑:我尝试使用此代码

但这不会打印变量的影响。

0 投票
0 回答
96 浏览

r - 带有 RandomForestSRC 包的因子变量重要性 (VIMP):无法强制转换为 data.frame 错误

大家下午好——提前感谢您的帮助!我对 R 有点陌生,所以如果这是一个微不足道或不恰当的问题,我深表歉意。

TL; DR:我正在尝试使用内置的随机森林模型 RandomForestSRC 确定因子变量的变量重要性 (VIM),这不是该包的内置功能。使用 LIME 和 DALEX 包,我遇到了同样的错误:cannot coerce class 'c("rfsrc, "predict", "class")' to a data.frame. 任何解决此错误的帮助或替代方法将不胜感激!

我有一个使用 RandomForestSRC 包在 R 中构建的随机森林模型。该模型似乎工作得很好——训练和测试都很顺利,得到了我需要的预测输出,结果似乎符合我的预期。不幸的是,其中一个要求是我需要能够说明模型是如何得出结论的(例如,我还需要将变量重要性作为输出的一部分),包括连续变量和因子变量。

这似乎不是 RandomForestSRC 包的内置功能,所以我研究了 LIME 和 DALEX 包,它们都应该能够从现有的 RF 模型中分离出 VIM。不幸的是,它们都没有对 RFSRC 包的原生支持,这意味着我需要自己构建预测函数,正如这个小插图所推荐的那样:https ://uc-r.github.io/dalex

不幸的是,在运行模型的 VIM 部分(在 LIME 和 DALEX 中)时,我被要求传递预测输出和创建该输出的模型。在这样做时,它会遇到上述predict_model函数的错误:

而且,就像……当然,它不能;它试图将模型本身变成一个数据框。不幸的是,虽然我认为我理解为什么 R 会给我这个错误,但这是我自己能够弄清楚的。

此外,我使用 RandomForestSRC 包有两个原因:它不限制因子变量的数量,并且它可以处理不平衡的数据。我正在处理医疗数据,所以这两个都是必要的(例如,有大约 100,000 个不同的医疗代码可以编码在一个数据变量中,以及“没有这个的人”的比率-condition”与“people-who-do-have-this-condition”通常是 100 比 1)。但是,如果有人对处理这些问题的替代软件包有任何建议,并且具有内置的 VIM 功能(或与 DALEX / LIME 集成),那也很棒。

非常感谢大家的帮助!

0 投票
0 回答
31 浏览

mlr3 - 关于 dalex 包的一点困惑

你好 mlr3 团队。

我对 mlr3 书中提供的 dalex 包有疑问。具体来说,这里

先感谢您

0 投票
0 回答
18 浏览

dalex - dalex包中variable_importance()的损失函数

dalex 函数的 variable_importance(explainer) 中的损失函数是 RMSE(默认情况下),我们可以使用其他指标,如平均绝对误差等吗?

谢谢

0 投票
1 回答
631 浏览

python - logit 和 sklearn 管道的一种热编码

我正在尝试使用 Python 中的Dalex包来可视化二进制 logit 模型的某些特征。

我从这里的示例书中复制了一段代码 (整个第五个代码单元),但现在我不太确定应该如何解释结果......

在我使用创建的基本 logit 模型中,我statsmodels为每个类别手动选择了一个参考水平变量,以避免多重共线性(这意味着模型的所有结果都相对于参考水平进行解释)。

但是当我使用上面链接中的一段代码(也复制到这篇文章下面)时,它首先在 中创建一些管道对象sklearn,one-hot 对分类变量进行编码,然后将管道对象拟合到数据并在Dalex解释器作为要解释的模型。

问题是,当我使用model_profile()Dalex 中的函数时,它应该输出一个图表,显示变量对预测的其他条件不变的影响,我不知道如何解释结果,因为似乎一个分类变量中的所有值包含在图表中。

例如,该模型显示了“性别”分类变量对男性和女性平均预测的影响......

这也显示了一条名为“平均预测”的水平线,但“平均预测”是什么?它是根据男性作为参考水平计算的,还是女性?

我对结果的含义感到非常困惑......有人可以澄清一下吗?model_profile()我尝试使用的功能也在笔记本中进行了说明。谢谢!

我复制的一段代码:

0 投票
1 回答
77 浏览

machine-learning - 克服使用来自 h2o 模型的 iml 的兼容性问题

我无法重现我能找到的将 h2o 与 iml 结合使用的唯一示例(https://www.r-bloggers.com/2018/08/iml-and-h2o-machine-learning-model-interpretability-and-feature -explanation/),详见此处(使用 FeatureImp$new 和 H2O 提取变量重要性时出错)。谁能指出将 iml 与 h2o 一起使用的解决方法或其他示例?


可重现的例子:

获得的错误:

0 投票
0 回答
48 浏览

r - 如何在故障算法中并行运行?

我有一些行代码如下。

分解以评估每个变量的贡献

要使用predict_parts. 我试图通过使用这个函数来使用循环,但它运行得非常慢。

请问,如何并行运行predict_parts?或者任何算法都可以运行整体数据?